文件名称:九种排序算法
文件大小:906KB
文件格式:RAR
更新时间:2011-02-06 01:30:27
C++ 数据结构
【问题描述】在教科书中,各种排序算法的时间复杂度分析结果只给出了算法执行时间的渐进度,或者大概执行时间。试通过随机数据比较算法的关键字比较次数和关键字移动次数,以取得直观的感受。
【基本要求】(1)对各种内部排序算法进行比较,包括(书中没有提到请自行查阅课外资料):冒泡排序,插入排序,选择排序,计数排序,快速排序,归并排序,希尔排序,基数排序,堆排序。
(2)待排序表的表长不小于100;其中数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标有关键字参加的比较次数和关键字的移动次数。(关键字交换计为3次移动)
(3)最后要对结果作出简单的分析,包括对各组数据得出结果波动大小的解释。
【实现提示】主要工作是设法在已知算法中的适当位置插入对关键字的比较次数和移动次数的计数操作。程序还可以考虑几组数据的典型性,如:正序,逆序和不同程度的乱序。注意采用分块调试的方法。
【选作内容】对不同的输入表长作试验,观察检查两个指标相对于表长的变化关系。还可以对稳定性作验证。
【文件预览】:
排序算法比较源代码
----sort()
--------main.cpp(1KB)
--------~VC95.tmp(48KB)
--------sort.dsp(4KB)
--------sort.ncb(89KB)
--------vector.h(14KB)
--------sort.plg(242B)
--------linklist.h(3KB)
--------Debug()
--------random.h(760B)
--------doubleEndlist.h(2KB)
--------sort.dsw(533B)
--------queue.h(3KB)
--------~VC96.tmp(0B)
--------sort.opt(49KB)