实验6:至少三种排序算法的程序实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构与算法》课程实验报告(6)
实验题目:实验6:至少三种排序算法的程序实现
一、实验目的
1.掌握简单插入排序、希尔排序、冒泡排序、快速排序、堆排序以及归并排序的算法并加以应用。
2.对各种查找、排序技术的时间、空间复杂性有进一步认识。
二、实验要求
1.认真阅读和掌握和本实验相关的教材内容。
2.编写完整程序完成下面的实验内容并上机运行。
3.整理并上交实验报告。
三、实验内容
编写程序实现下述六种算法至少三种,并用以下无序序列加以验证:49,38,65,97,76,13,27,49
1.简单插入排序
2.希尔排序
3. 冒泡排序
4.快速排序
5.归并排序
6.堆排序
四、源代码与结果:
1、简单插入排序:
源代码:
#include
void InsertSort(int r[],int n);
int main()
{
int r[]={49,38,65,97,76,13,27,49};
cout<<"直接插入排序:"< InsertSort(r,8); for(int i=0;i<8;i++) { cout< } cout< return 0; } void InsertSort(int r[],int n) { for(int i=1;i { for(int j=i-1,s=r[i];s { r[j+1]=r[j]; } r[j+1]=s; } } 运行结果: 2.希尔排序: #include void ShellSort(int r[],int n); int main() { int r[]={49,38,65,97,76,13,27,49}; cout<<"希尔排序:"< ShellSort(r,8); for(int i=0;i<8;i++) cout< } cout< return 0; } void ShellSort(int r[],int n) { int step=n/2; while(step >= 1) { for(int i=step;i { for(int j=i-step,s=r[i];s { r[j+step]=r[j]; } r[j+step]=s; } step/=2; } } 运行结果: 3、冒泡排序: 源代码: //起泡法排序: #include #define N 8 //N为数的总个数 void BubbleSort(int r[],int n); int main() { int i; int a[N];