实验四:部排序算法的实现与比较一、 问题描述 1. 实验题目:在教科书中,各种部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大致执行时间
试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受
2. 基本要求:(1)对常用的部排序算法进行比较:直接插入排序、简单选择排序、冒泡排序、快速排序、希尔排序、归并排序
(2 利用随机函数产生 N(N=30000)个随机整数,作为输入数据作比较;比较的指标为关键字参加的比较次数和关键字的移动次数(关键字交换记为 3 次移动)
(3)对结果作出简要分析
3. 测试数据:随机函数产生
二、 需求分析 1. 程序所能达到的基本可能:通过随机数据产生 N 个随机数,作为输入数据作比较;对常用的部排序算法:直接插入排序、简单选择排序、冒泡排序、快速排序、希尔排序、归并排序进行比较:比较的指标为关键字参加的比较次数和关键字的移动次数(关键字交换记为 3 次移动)
最后结果输出各种排序算法的关键字参加的比较次数和关键字的移动次数,并按从小到大排列
2. 输入的形式与输入值围 :随机函数产生的 N(N=30000)个随机整数
3. 输出的形式:输出各种排序算法的关键字参加的比较次数和关键字的移动次数
并按从小到大排列
4. 测试数据要求:随机函数产生的 N(N=30000)个随机整数
三、 概要设计 1
所用到得数据结构与其 ADT 为了实现上述功能,应以一维数组表示集合数据类型
int s[N]; int compare[6]={0},move[6]={0},D[N]={0},RS[N]={0};基本操作: 数组赋值:for(i=1;i