在数组的线性时间内排序,每个元素至少出现n / 1000次

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在数组的线性时间内排序,每个元素至少出现n / 1000次相关的知识,希望对你有一定的参考价值。

你好,给定一个包含n个元素的数组,每个元素出现在数组中至少n / 1000次是否有算法在O(n)时间内对数组进行排序?

答案

不,在最坏或平均的情况下。 为什么? 因为n / 1000并不真正提供有关数组中元素的任何信息,并且仍需要执行操作以常规方式对数组进行排序。 在最坏的情况下,它并没有真正帮助减少时间复杂度。

是的,最好的情况。 这里最好的情况是数组大小为1000,即n = 1000那么数组中只有一个元素导致数组已经排序。(你不需要逻辑上执行任何操作)

以上是关于在数组的线性时间内排序,每个元素至少出现n / 1000次的主要内容,如果未能解决你的问题,请参考以下文章

存在重复元素

桶排序

排序算法——计数排序

线性时间选择

【比较难写的算法】最坏情况线性时间的选择

线性时间和就地排序