数据结构课程设计
道路不好走,不过我会更加努力的学习,让编程不再那么困难辛苦,让以后自己能有信心的轻松面对。 参考文献
[1] 谭浩强.C语言程序设计(第三版).清华大学出版社,2007 [2] 姜灵芝,余健.C语言课程设计案例精编.清华大学出版社,2008 [3] 吴伟民,严蔚敏.数据结构. 清华大学出版社,2008 [4] 吕映芝.编译原理.清华大学出版社,2008
14
数据结构程序设计
附录1-用户手册
点击运行,首先出现的是要输入伪随机产生数据的数目,如图9所示。
图9 输入界面
输入数据个数然后回车,可显示出不同排序算法的比较次数、移动次数和排序用时。如图10所示。
图10 显示比较结果界面
显示比较次数的条形图。如图11所示。
15
数据结构课程设计
图11 比较次数条形图界面
显示移动次数条形图。如图12所示
图12 移动次数条形图界面
显示排序用时条形图。如图13所示
图13 排序用时条形图界面
16
数据结构课程设计
附录2-源程序
主要模块源代码清单: #include
#define LIST_INIT_SIZE 30000 int bj1,yd1,n,com,mov; long int A[5],B[5]; double t0,t1,t2,t3,t4,t5,C[5]; clock_t start_t,end_t; typedef struct { int key; }ElemType; typedef struct {
ElemType *elem; int length; }SqList;
void addlist(SqList &L) { int i;
a: printf(\请输入你要输入的个数:\ scanf(\ if(n>20000) {
printf(\超出范围重新输入!!!\\n\ goto a; }
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem)exit(0);
17
数据结构课程设计
L.length=0; for(i=1;i b: L.elem[i].key=rand(); if(L.elem[i].key>20000)goto b; ++L.length; } } void SelectSort(SqList &L) //简单选择排序 { start_t=clock(); int i,j,k,com=0,mov=0; for(i=1;i for(j=i+1;j if(L.elem[j].key L.elem[0].key=L.elem[i].key; L.elem[i].key=L.elem[k].key; L.elem[k].key=L.elem[0].key; mov+=3; } } end_t=clock(); printf(\比较次数为 %d移动次数为 %d\\n\ t0=(double)(end_t-start_t)/CLK_TCK; printf(\排序用时为 %f\\n\ A[0]=com; 18