课程名称: 数据结构A 实验名称: 实验十 快速排 序、插入排序 班 级: XXX 学生姓名: XXX 学号: XXXXX 指导教师评定: XXX 签 名: XXX
一、实验目的
1.掌握各种基本查找方法。
2.比较几种查找方法的局限性和优劣性并熟练应用到程序编写过程中。 二、实验内容
实现对某一张顺序表的快速排序算法。 三、程序分析
⒈ 任意选取一个记录作为枢轴,通过一趟排序将待排记录,将待排记录分割成独立的两部分,其中一部分均比另一部分记录的关键字小。
⒉ 在递归调用分别对分开的两部分断续排序,以达到整个序列有序。
四、程序源代码
该程序的源代码如下:
#include void QuickSort(int a[],int s,int t); void insertsort(int a[],int n); int i,x; int a[]={2,3,12,24,14,21,35,68,13,33,32,74,16,45,63}; printf(\"排序前:\\n\"); for(i=0;i<15;i++) } printf(\"%d \ printf(\"\\n快速排序请按1,直接插入排序请按2\\n\"); scanf(\"%d\switch(x) { case 1 : QuickSort(a,0,14);break; case 2 : insertsort(a,15);break; default : printf(\"输入错误\\n\"); } printf(\"\\n排序后:\\n\"); for(i=0;i<15;i++) printf(\"%d \ printf(\"\\n\"); return 0; void QuickSort(int a[],int s,int t) { int i=s,j=t; int tmp; if(s } } } while(j>i&&a[j]>=tmp) j--; a[i]=a[j]; while(i a[j]=a[i]; a[i]=tmp; QuickSort(a,s,i-1); QuickSort(a,i+1,t); void insertsort(int a[],int n) {int i,j; int tmp; for(i=1;i 五、实验结果 因篇幅问题不能全部显示,请点此查看更多更全内容