(5)选择排序类型:
void Selectsort();
(6)堆排序类型:
void Heap();
4.2主要模块的算法描述
(1)系统的总体结构 内部排序算法性能分析 直 接 插入 排 序 输出各种排序的排序结果和排序的比较次数和移动次数 希尔排序 冒泡排序 选择排序 快速排序 堆排序 图4.20总体结构图 (2)运行环境与开发环境
六种排序结构的性能分析的运行环境规定为: 硬件配置:单机系统。
软件配置:windows操作系统。
开发平台:该程序借助C语言编程实现,事例采用Vinual C++作为编程开发工具。
4
(3)下面是主程序的结构图和几个主要模块的流程图和相应的程序代码
开始 循环 产生一组随机数
将随机数保存在数组中 插入希尔 起泡快速选择堆排排序 排序 排序 排序 排序 序 记录关键字的比较次数和移动次数
输出关键字的比较次数和移动次数
结束 4.21主程序结构图
排序是一种重要的数据结构,在我们的现实生活中有许多地方要用到排序,比
5
如:学生的成绩,当学生人数比较少是我们可以人工的进行排序,但是当学生数量达到一定程度,我们进行人工排序会花费大量的时间。那这时我们所编写的排序程序就派上大的用场了,我们所编写的程序有六种基本的排序方法,以下就是我们一个整体排序的代码,能体现我们六种排序的一个基本的结构,通过这里我们可以选择相应的序号进行相应的排序,以下就是整体排序的代码:
#include
char otherinfo;
}RecType;*/
//typedef RecType Seqlist[L+1]; int s[100],R[100]; int num;
int times=0,changes=0; //Seqlist R; void Insertsort(); void Bubblesort();
void QuickSort(int low,int high); void Shellsort(); void Selectsort(); void Heap(); int Partition(); void main() {
6
//Seqlist S; int i,k; char ch1,ch2,q;
printf(\产生100个随机数:\\n\
srand((unsigned)time(NULL)); for(i=1;i<=L;i++) {
s[i]=rand()0; }
for(i=1;i<=L;i++) {
printf(\ }
printf(\排序数据已经输入完毕!\ for(i=1;i<=L;i++)
R[i]=s[i];
ch1='y';
while (ch1=='y'||ch1=='Y') {
printf(\排 序 性 能 分 析\\n\
printf(\ 1--------直接插入排序 ---------*\\n\ printf(\ 2--------希 尔 排 序 ---------*\\n\
printf(\
printf(\ 3--------冒 泡 排 序 ---------*\\n\ printf(\ 4--------快 速 排 序----------*\\n\ printf(\ 5--------选 择 排 序 ---------*\\n\ printf(\ 6--------堆 排 序----------*\\n\ printf(\ 0--------返 回----------*\\n\
printf(\ printf(\请选择菜单号(0---6):\
scanf(\
7
相关推荐: