文档详情

数据结构第10章排序验证型实验报告.doc

发布:2017-02-01约1.64千字共4页下载文档
文本预览下载声明
数据结构 实验报告 第十章 实验名称:排序问题 5.实验收获及思考 遇到的问题: 数组作为函数参数的使用方法忘记了。 解决办法: 上网查找相关知识后,学会了如何使用数组。 实验的收获: 通过亲自编写三个排序算法的程序,再一次加深了对它们的记忆,同时也复习了数组作为函数参数的使用方法。 附录: #includeiostream using namespace std; int a[10]={0,6,5,2,1,4,3,8,7,9}; int b[10]={0,6,5,2,1,4,3,8,7,9}; int c[10]={0,6,5,2,1,4,3,8,7,9}; void printl(int ll[])//输出数组 { for(int i1=1;i110;i1++) { coutll[i1] ; } coutendl; } void charu(int l[])//插入排序 { int i,j; for(i=1;i10;i++) { if(l[i]l[i-1]) { l[0]=l[i]; for(j=i-1;l[0]l[j];--j) l[j+1]=l[j];//记录后移 l[j+1]=l[0];//插入到正确位置 } } } void kuaisu(int s[], int l, int r) //快速排序 { if (l r) { int i = l, j = r, x = s[l]; while (i j) { while(i j s[j]= x) // 从右向左找第一个小于x的数 j--; if(i j) s[i++] = s[j]; while(i j s[i] x) //从左向右找第一个大于等于x //的数 i++; if(i j) s[j--] = s[i]; } s[i] = x; kuaisu(s,l,i-1); // 递归调用 kuaisu(s,i+1,r); } } void xuanze(int s[])//直接选择排序 { int tem; for(int i=1;i=8;i++)//依次用第一个元素和它后面的元素比较 { for(int j=i+1;j=9;j++) { if(s[j]s[i])//如果后者大,交换 { tem=s[j]; s[j]=s[i]; s[i]=tem; } } } } int main() { cout数组排序前:;printl(a); charu(a); cout插入排序后:;printl(a); coutendl; cout数组排序前:;printl(b); kuaisu(b,1,9); cout快速排序后:;printl(b); coutendl; cout数组排序前:;printl(c); xuanze(c); cout选择排序后:;printl(c); return 0; }
显示全部
相似文档