1.设有5000个无序的元素,希望用最快的速度挑选出其中前50个最大的元素,最好选用( )法。
解释:堆排序使用50个元素的最小堆
2.下面的排序算法中,初始数据集的排列顺序对算法的性能无影响的是(B)
A、插入排序 B、堆排序 C、冒泡排序 D、快速排序
解释:若序列事先已经基本有序,则插入法和冒泡法会明显减少比较次数,快速排序法与主元的选择有关,若一般选子序列左侧第一个元素比较,则第一个元素最好是大小居中的,以使得分成的两个子数组长度大致相等,性能才能最佳,所以快速排序也与初始输入集有关的。堆排序受数据集输入顺序影响最小。
3. 在堆排序、快速排序和归并排序中,
若只从存储空间考虑,则应首先选取堆 方法,其次选取快速排序方法,最后选取归并排序方法;
若只从排序结果的稳定性考虑,则应 选取 归并排序 方法;
若只从平均情况下最快考虑,则应选取 快速排序方法;