图2
图3
图4
图5
6、用户使用说明
内部排序算法比较用户使用说明
本系统采用Visual C++语言编写,运用软件工程的思想, 采用面向对象分析、设计的方法学完成。本程序主要用于人们比较排序算法,从直观感受各种排序的优缺点。
7、参考文献
[1] 严蔚敏,吴伟民. 数据结构(C语言版) [M]. 北京:清华大学出版社,1997.04 [2] 严蔚敏,吴伟民. 数据结构题集(C语言版) [M]. 北京:清华大学出版社,1997.04 [3] 汪杰等,数据结构经典算法实现与习题解答[M]. 北京:人民邮电出版社,2004 [4] 陈媛,何波,涂晓红等,算法与数据结构[M]. 北京:清华大学出版社,2005 [5]李春葆.数据结构习题与解析(第二版) [M].北京:清华大学出版社,2004.07
8、附录
#include
void gensort(int b[],int n) {
int i,j;int s=0,t=0; for(i=0;i for(j=i+1;j if(b[i]>b[j]) { int temp=b[i]; b[i]=b[j]; b[j]=temp; s+=3; }}} cout<<\移动次数=\比较次数=\} //插入排序 typedef int KeyType; struct rec { KeyType key; }; typedef rec sqlist[N]; void insertsort(sqlist b,int n) { int i,j;int s=0,t=0; for(i=2;i b[0]=b[i]; s++; j=i-1; t++; while(b[0].key b[j+1]=b[j]; j--; s++; t++; } b[j+1]=b[0]; s++; } cout<<\移动次数=\比较次数=\} //希尔排序 void shellsort(sqlist b,int n) { int i,j,gap; rec x; int s=0,t=0; gap=n/2; while(gap>0) { for(i=gap+1;i j=i-gap; while(j>0) { t++; if(b[j].key>b[j+gap].key) { x=b[j];b[j]=b[j+gap]; b[j+gap]=x;j=j-gap; s+=3; } else j=0; gap=gap/2; }} cout<<\移动次数=\比较次数=\}} //选择排序 void gentsort(int b[],int n) { int i,j,k; int s=0,t=0; for(i=0;i k=i; for(j=i+1;j if(b[k]>b[j]) {k=j;} } if(k!=i) {int temp=b[k]; b[k]=b[i]; b[i]=temp; s+=3; }} cout<<\移动次数=\比较次数=\} //快速排序 void output(sqlist b,int n)//输出元素值 { for(int i=0;i cout< void display(int n,int m)//输出计数 { cout<<\移动次数=\比较次数=\} void BeforeSort()//初始化计数器 {