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

2020-09-27 23:43

void main() {

初始化; 随机数的产生; 调用子函数

};

(2)子函数模块:实现直接插入排序的抽象数据类型。 实现希尔排序的抽象数据类型。 实现冒泡排序的抽象数据类型。 实现快速排序的抽象数据类型。 实现选择排序的抽象数据类型。 实现堆排序的抽象数据类型。

最后输出相应算法的比较次数(至少有五种不同的数据)和移动次数(关键字的交换记为三次移动)。从而直观的判断各内部排序算法性能的优劣性。

4 详细设计

4.1数据类型的定义

(1)直接插入排序类型:

void Insertsort();

(2)希尔排序类型:

void Shellsort();

(3)冒泡排序类型:

void Bubblesort();

(4)快速排序类型:

void QuickSort(int low,int high);

(5)选择排序类型:

void Selectsort();

(6)堆排序类型:

void Heap();

4.2主要模块的算法描述

3

下面是主程序的结构图和几个主要模块的流程图:

开始 循环

产生一组随机数

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

结束 4.21主程序结构图

4

开始

i=1,j=1 输入要排序的一组元素 定义临时中间变量k,并赋初值 N i<元素总个数 N Y j<元素总个数 i

第j个元素>第j+1个元素 Y

结束 输出比较次数和移动次数 利用k交换第j个元素和第j+1个元素 4.22冒泡排序关键字比较次数和移动次数的流程图

5

开始

定义临时中间变量h,并赋初值 输入要排序的一组元素 i=1,j=1 N i<元数总个数 Y

h记下目前找到的最小关键字所在的位置 i=i+1 在无序区R[i-n]中选h最小记录R[h] 做第i趟排序

输出比较次数和移动次数 交换R[i]和R[h] 结束 4.23选择排序关键字比较次数和移动次数的流程图

6

开始

定义临时中间变量k,并赋初值 输入要排序的一组元素

将二叉树转换成堆 i=总元素个数-1 N i<=1 Y

i--,k++ 将堆的根植和最后一个值交换

4.24堆排序关键字比较次数和移动次数的流程图

输出比较次数和移动次数 结束

7


几种常见的排序算法的实现与性能分析数据结构课程设计报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:DSP复习提纲(精华版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: