如果 99% 的元素相同,可以在 O(n) 中对数组进行排序吗?

Possible to sort Array in O(n) if 99% of its elements are same?

因兴趣而问;

假设数组中元素的比较时间复杂度为O(n), 如果元素相同,是否有可能在 O(n) 中对数组进行排序,如果 99%?

如果数组中的某个元素出现超过 n/2 次怎么办? 还是 O(n) 可能?

否:一旦找到出现概率为 99% 的元素,您仍然需要对数组的其余部分进行排序,其中将包含 n/100 个元素。我们知道基于比较的排序算法的大 O 的下限是 n log n - 所以对于剩余的 n/100 元素的排序,我们不能比 O(n/100 log(n/100)), 这仍然是 O(n log n).