使用Insertion Sort进行堆栈交换?

时间:2011-10-05 01:15:58

标签: algorithm heapsort insertion-sort

是否可以在heapsort中使用插入排序来替换其交换或交换方法?

通常交换至少需要3个步骤:

temp = a
a = b
b = temp

我的一位朋友说,可以使用插入排序来减少交换到一个操作而不是三个操作。是吗?

1 个答案:

答案 0 :(得分:2)

我认为他的意思可能是当你在堆中向下(或向上)一个元素时,你不会存储该元素,直到找到它应该去的地方。因此,每个交换只有一个操作:将较小的元素存储在堆中的新位置。当您将元素移动到数组开头的排序位置时,该过程类似于插入排序中的过程。