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

Arrays 如果数组中99%的元素相同,是否可以按O(n)对数组进行排序?,arrays,runtime,Arrays,Runtime,因为兴趣而问 假设数组中元素的比较取O(n), 如果99%的元素相同,那么是否可以对数组进行O(n)排序 如果数组中的一个元素出现超过n/2次呢? 仍然是O(n)可能吗?否:一旦找到99%的时间出现的元素,仍然需要对数组的其余部分进行排序,其中将包含n/100个元素。我们知道,基于比较的排序算法的大O的下界是n log n-因此对于剩余的n/100元素的排序,我们不能比O(n/100 log(n/100))做得更好,O仍然是O(n log n)

因为兴趣而问

假设数组中元素的比较取O(n), 如果99%的元素相同,那么是否可以对数组进行O(n)排序

如果数组中的一个元素出现超过n/2次呢?
仍然是O(n)可能吗?

否:一旦找到99%的时间出现的元素,仍然需要对数组的其余部分进行排序,其中将包含n/100个元素。我们知道,基于比较的排序算法的大O的下界是n log n-因此对于剩余的n/100元素的排序,我们不能比O(n/100 log(n/100))做得更好,O仍然是O(n log n)