具有大部分重复元素的数组的快速排序算法?

有什么有效的方法可以对具有少量重复元素的数组进行排序?也就是说,列表如下:

{10,10,55,10,999,8851243,10,55,55,55,10,999,8851243,10}

假设equal元素的顺序无关紧要,那么什么是最佳的最坏情况/平均情况算法?

回答:

在实践中,您可以首先遍历数组一次,并使用哈希表对单个元素的出现次数进行计数(这是O(n),其中n =列表的大小)。然后将所有唯一元素进行排序(这是O(k

log k),其中k =唯一元素的数量),然后将其扩展回O(n)步骤中的n个元素列表,从哈希表。如果k << n,则可以节省时间。

以上是 具有大部分重复元素的数组的快速排序算法? 的全部内容, 来源链接: utcz.com/qa/419949.html

回到顶部