是否可以在堆排序中使用插入排序来替代其交换或交换方法?
通常交换至少需要 3 个步骤:
temp = a
a = b
b = temp
我的一个 friend 说可以使用插入排序将交换操作减少到一个操作而不是三个。是吗?
最佳答案
我认为他的意思可能是当您向下(或向上)筛选堆中的一个元素时,您不会存储该元素,直到找到它应该去的地方。因此,每次交换只有一个操作:将较小的元素存储在堆中的新位置。当您将元素移动到数组开头的已排序位置时,该过程类似于插入排序中的过程。
关于algorithm - Heapsort交换使用插入排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655771/