求!一排序方法比较的问题
1、 选择三种不同类型的内部排序算法加以实现。对于不同长度的输入实例测试这三个排序算法程序的实际运行时间并加以比较,最后做出分析。2、 具体要求:
(1) 编程实现三个不同类型的排序算法;
(2) 在每个算法程序中记录开始时间和结束时间,并计算差值作为每个算法运行时间;
(3) 编制一个产生随机整数序列的程序;
(4) 生成不同长度的随机整数序列并让不同的算法程序进行排序,记录下每个算法程序运行的时间;
(5) 在二维坐标平面上用不同颜色(三种)描述出各算法在不同问题规模下运行的时间点(横轴为问题规模,纵轴为运行时间),然后用光滑的曲线把相同颜色的点连接起来;
(6) 对曲线进行分析。
3、 任务提示
C语言中获取时间的函数定义在time.h中,但在Windows环境下只能用精确到秒的函数time(),对于短的排序序列来书,根本无法测量。这可以通过让算法程序对每个排序序列运行多次(譬如100000次)的方法来比例放大,一样可以获得比较所需要的时间精度。当然这个比例因子需要选择适当,不能太大,否则会导致大规模的排序问题需要很长的时间才能完成,而太小则会导致小规模问题下各算法运行时间无法区别。