algorithm - Heapsort交换使用插入排序?

标签 algorithm heapsort insertion-sort

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

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

temp = a
a = b
b = temp

我的一个 friend 说可以使用插入排序将交换操作减少到一个操作而不是三个。是吗?

最佳答案

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

关于algorithm - Heapsort交换使用插入排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655771/

相关文章:

algorithm - 按顺序排列列表

java - 搜索两个数组进行匹配,没有额外的内存

algorithm - 压缩位

java - Java中的桶排序

Python3插入排序向后迭代不起作用

ruby - 查找数组中重复元素的长度

java - 获取heapsort以升序打印

java - 子数组中的最大堆

algorithm - 检查大小为 N 的 ArrayList 中是否有两个数字的总和为 N

algorithm - 对于大数组,选择排序比插入快吗?