内部排序算法的比较课设作业
内部排序算法的比较
【问题描述】
设计一个测试程序,比较几种内部排序算法的关键字比较次数、移动次数和运行时间。
【基本要求】
(1)实现各种内部排序。包括直接插入排序,希尔排序,冒泡排序,快速排序,简单选择排序,堆排序。
(2)待排序元素的关键字设为整数。其中的数据要用随机数产生(如10000个),至少用5组不同的数据做比较,再使用各种算法对其进行排序,记录其排序时间,再汇总比较。
(3) 演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标值的列表,用饼图或条形图进行表示,以便比较各种排序的优劣。
(4) 界面友好,易与操作。采用菜单方式进行选择。
【选做内容】
(1) 对不同表长进行比较;
(2) 验证各算法的稳定性;
总计用了3w组数据,在说明里虽然写了合作制作,但是另一个人只写了一个简单选择排序。
程序虽然是用饼图显示数据比较,但是因为不同排序的效率和数据数量级差距过大,不好用比例的方式呈现,遂用log函数并设定常数与原数据算法处理,取log()的前段,使小的数也有一定的显示区域,但数据大的也和小的也有较明显区别,值得一提的是简单选择排序的排序次数过少,没能编出显示。