Algorithm 当所有元素都相同时,堆排序的运行时间
我们可以说,当一个大小为n的数组中的所有元素都相同时,堆排序的运行时间是O(n)Algorithm 当所有元素都相同时,堆排序的运行时间,algorithm,sorting,heap,Algorithm,Sorting,Heap,我们可以说,当一个大小为n的数组中的所有元素都相同时,堆排序的运行时间是O(n) -->如果是这种情况,那么当所有元素都相等时,堆的O(n)最佳运行时间是否为heapsort构建堆需要O(n)个步骤。因为当元素在一次比较O(1)后被添加到堆中时,我们看到它处于正确的位置 移除根也是O(1),当我们交换尾部和根时,堆属性仍然满足 所有元素都在O(n)中添加到堆中,并在O(n)中删除。在这种情况下,heapsort是O(n)。我想不出更好的例子,所以heapsorts最好的例子必须是O(n) “he
-->如果是这种情况,那么当所有元素都相等时,堆的O(n)最佳运行时间是否为heapsort构建堆需要O(n)个步骤。因为当元素在一次比较O(1)后被添加到堆中时,我们看到它处于正确的位置 移除根也是O(1),当我们交换尾部和根时,堆属性仍然满足 所有元素都在O(n)中添加到堆中,并在O(n)中删除。在这种情况下,heapsort是O(n)。我想不出更好的例子,所以heapsorts最好的例子必须是O(n)
“heapsort的最佳情况是O(n)”在英语中的意思是:存在大小为n的数组,因此heapsort最多需要k*n来排序。这在理论上很好,但在实践中并不能说明heapsort有多好或多快。这是不正确的!看@Cheng,这个问题是关于最好的情况,你链接的问题是关于最坏的情况。正如我所指出的,最好的情况并不是真的相关。。如果你有关于如何改进我的答案的建议,请让我知道。