- 14
- 0
- 约1.03万字
- 约 22页
- 2018-06-29 发布于福建
- 举报
数据结构课程的设计排序算法演示系统
PAGE PAGE 11. 设计目的随着计算机技术的发展,各种排序算法不断的被提出。排序算法在计算机科学中有非常重要的意义,且应用很广泛。在以后的发展中排序对我们的学习和生活的影响会逐渐增大,很有必要学习排序知识。此次课程设计一方面使自己掌握排序的知识,另一方面锻炼一下团队合作开发系统的能力。2.1 设计内容和要求设计内容:(1)实现各种内部排序。包括直接插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,归并排序,堆排序。(2)待排序的元素的关键字为整数或(字符)。可用随机数据和用户输入数据作测试比较。比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换以3次计)。(3)演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标值的列表,以便比较各种排序的优劣。3. 本设计所采用的数据结构typedef struct{ int key;}RecType;4. 功能模块详细设计4.1 详细设计思想主函数:#includestdio.h#includestdlib.h#include math.h#define L 8 //排序元素个数#define FALSE 0#define TRUE 1typedef struct{ int key; }RecType;RecType R[L];int num; int sum;int sun; //定义排序趟数的全局变量 //主函数int main(){ Seqlist S; int i,k; char ch1,ch2,q; printf(\n\t\t 排序算法演示系统\n\n\t\t请输入%d个待排序的数据:,L);for(i=1;i=L;i++) { scanf(%d,S[i].key); getchar(); printf(\t\t); } ch1=y; while(ch1==y) { printf(\n); printf(\n\t\t 菜 单 \n); printf(\n\t\t***********************************************\n); printf(\n\t\t 1更新排序数据 2直接插入排序 \n); printf(\n\t\t 3希 尔 排 序 4冒 泡 排 序 \n); printf(\n\t\t 5快 速 排 序 6直接选择排序 \n); printf(\n\t\t 7堆 排 序 8归 并 排 序 \n); printf(\n\t\t *** 0退 出 *** \n); printf(\n\t\t***********************************************\n); printf(\n\t\t请选择:); scanf(%c,ch2); getchar(); for(i=1;i=L;i++) { R[i].key=S[i].key; } switch(ch2) { case 1: printf(\n\t\t请输入%d个待排序数据\n\t\t,L); for(i=1;i=L;i++) { scanf(%d,S[i].key); getchar(); printf(\t\t); } printf(\n\t\t数据输入完毕!); break; case 2: Insertsort(); break; case 3: Shellsort(); break; case 4: Bubblesort(); break; case 5: printf(\n\t\t原始数据为(按回车键开始排序):\n\t\t); for(k=1;k=L;k++) { printf(%5d,R[k].key); } getchar(); p
原创力文档

文档评论(0)