2.4.16对于N=32,构造数组使得堆排序使用的比较次数最多以及最少。
最多比较的情况:
堆排序由两个动作实现:
1)构建堆
2)缩小堆排序数组。
反向来看,对于一个已经构建好的大堆,在缩小堆排序数组时要想比较次数最多就需要交换次数最多,要交换次数最多,就需在堆顶元素与堆尾元素交换后下沉最多,要想下沉最多可以在堆顶元素与堆尾元素交换时让堆尾元素是堆中的最小元素。按照这个方法就可以构建一个比较次数最多的大堆。反过来操作就可以得到一个比较次数最少的大堆。
最多比较的情况:
堆排序由两个动作实现:
1)构建堆
2)缩小堆排序数组。
反向来看,对于一个已经构建好的大堆,在缩小堆排序数组时要想比较次数最多就需要交换次数最多,要交换次数最多,就需在堆顶元素与堆尾元素交换后下沉最多,要想下沉最多可以在堆顶元素与堆尾元素交换时让堆尾元素是堆中的最小元素。按照这个方法就可以构建一个比较次数最多的大堆。反过来操作就可以得到一个比较次数最少的大堆。