Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 当所有元素都相同时,堆排序的运行时间_Algorithm_Sorting_Heap - Fatal编程技术网

Algorithm 当所有元素都相同时,堆排序的运行时间

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

我们可以说,当一个大小为n的数组中的所有元素都相同时,堆排序的运行时间是O(n)


-->如果是这种情况,那么当所有元素都相等时,堆的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,这个问题是关于最好的情况,你链接的问题是关于最坏的情况。正如我所指出的,最好的情况并不是真的相关。。如果你有关于如何改进我的答案的建议,请让我知道。