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 - Fatal编程技术网

Algorithm 非唯一元素上的堆排序算法复杂性

Algorithm 非唯一元素上的堆排序算法复杂性,algorithm,sorting,Algorithm,Sorting,我想知道堆排序在具有统一元素的数组上是如何工作的。我是在复杂性和运行的上下文中讨论的。在这种情况下,具有统一元素的数组是最佳情况的一个实例,因此复杂性将为*logn 这是理论上的 当然,在实践中,与具有相同复杂性的平均情况相比,您会注意到一个改进,因为您不再需要在元素之间进行交换 如果你想亲眼看看改进有多大,我建议你实施这个算法,并在最好、最坏和平均的情况下进行尝试 祝你们好运。什么是统一元素?可能是统一分布?实际上我想从另一个角度知道,例如,当对一个包含所有相同元素的数组应用快速排序时,在分区

我想知道堆排序在具有统一元素的数组上是如何工作的。我是在复杂性和运行的上下文中讨论的。

在这种情况下,具有统一元素的数组是最佳情况的一个实例,因此复杂性将为*logn

这是理论上的

当然,在实践中,与具有相同复杂性的平均情况相比,您会注意到一个改进,因为您不再需要在元素之间进行交换

如果你想亲眼看看改进有多大,我建议你实施这个算法,并在最好、最坏和平均的情况下进行尝试


祝你们好运。

什么是统一元素?可能是统一分布?实际上我想从另一个角度知道,例如,当对一个包含所有相同元素的数组应用快速排序时,在分区阶段,若我们总是选择pivot值来分区数组,作为数组的中间索引值,然后我们得到一个平衡的递归树,对吗?这是我们可以进行的修改,以减少总迭代次数。但我想知道,如果在具有类似元素的数组上进行堆排序,以减少迭代次数或提高运行成本,我该怎么办?我可能误解了您的问题。。。请举例说明您尝试排序的数组的外观?因为我不知道你说的相似元素是什么意思。比如一个长度为20的数组,由所有的2组成