几种常见的排序算法的实现与性能分析数据结构课程设计报告

发布时间 : 星期一 文章几种常见的排序算法的实现与性能分析数据结构课程设计报告更新完毕开始阅读

(5)选择排序类型:

void Selectsort();

(6)堆排序类型:

void Heap();

4.2主要模块的算法描述

(1)系统的总体结构 内部排序算法性能分析 直 接 插入 排 序 输出各种排序的排序结果和排序的比较次数和移动次数 希尔排序 冒泡排序 选择排序 快速排序 堆排序 图4.20总体结构图 (2)运行环境与开发环境

六种排序结构的性能分析的运行环境规定为: 硬件配置:单机系统。

软件配置:windows操作系统。

开发平台:该程序借助C语言编程实现,事例采用Vinual C++作为编程开发工具。

4

(3)下面是主程序的结构图和几个主要模块的流程图和相应的程序代码

开始 循环 产生一组随机数

将随机数保存在数组中 插入希尔 起泡快速选择堆排排序 排序 排序 排序 排序 序 记录关键字的比较次数和移动次数

输出关键字的比较次数和移动次数

结束 4.21主程序结构图

排序是一种重要的数据结构,在我们的现实生活中有许多地方要用到排序,比

5

如:学生的成绩,当学生人数比较少是我们可以人工的进行排序,但是当学生数量达到一定程度,我们进行人工排序会花费大量的时间。那这时我们所编写的排序程序就派上大的用场了,我们所编写的程序有六种基本的排序方法,以下就是我们一个整体排序的代码,能体现我们六种排序的一个基本的结构,通过这里我们可以选择相应的序号进行相应的排序,以下就是整体排序的代码:

#include #include #include #include #define L 100 #define FALSE 0 #define TRUE 1 /*typedef struct { int key;

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

联系合同范文客服:xxxxx#qq.com(#替换为@)