数据结构设计--排序综合问题(10大经典排序)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
1.课题要求
设计程序,利用随机函数产生20000个随机整数(1~100000), 完成下面功能:
(1)对这些数分别进行直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序2-路归并排序、链式基数排序,并把排序结果保存到文件中。
(2) 分析上述排序算法的性能(以运行程序所花费的时间为准进行对比),找出较快的排序方法。
(3)计算并输出所选排序算法中比较的次数和数据移动的次数。
(4)若排序的整数增加到100000个、100000000个,排序结果有什么变化,请分析并验证。
2.课题分析
这一课题主要考查我们对所有排序方法的应用,10大经典排序的互相结合,本质并不难,首先,先简单地介绍一下10大经典排序。
(1)冒泡排序
冒泡排序是我们最早接触编程的时候所接触的第一个排序方法,它的时间复杂度最坏为O(n2),又称为"沉底法",每次交换相邻的两个位置,如果前面的数比后面的数大,那么就交换他们,迭代n-1次就可以确定每一个数的位置。
i∈[0,N-1) //循环N-1遍
j∈[0,N-1-i) //每遍循环要处理的无序部分
swap(j,j+1) //两两排序(升序/降序)
(2)选择排序
选择排序也是我们常用的排序方法,