编写程序,实现所有内部排序算法,并比较这些算法在不同数据量下的运行时间。
(1)排序算法包括:插入排序、希尔排序、堆排序、归并排序、快速排序、基数排序。
(2)对整数进行排序。
(3)程序功能:可从键盘输入初始数据个数(数据自动生成)、初始数据类别(随机、正序、逆序),并得出排序所用时间(精确到毫秒)
注1:若某算法排序时间超过300秒,可显示为N/A,且不用记录在Excel表中
注2:rand()函数生成的随机数范围在0~32767之间,为扩大该范围,可使用下面代码:
randnum = (rand() << 16) + rand(); // 随机数范围扩大至0~231之间
(4)生成图表:对1000、8000、30000、80000、150000、300000、500000、1000000、2000000、5000000个数据排序后得出排序时间,并制作类似的折线图如下。