【问题标题】:sorting in linear time of an array that every element appears at least n/1000 times在每个元素至少出现 n/1000 次的数组的线性时间排序
【发布时间】:2018-05-20 09:17:32
【问题描述】:

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

【问题讨论】:

  • 一般来说,没有。至少,不是基于你如何表达你的问题。毕竟,在一个包含 1000 个唯一字符串的数组中,每个字符串恰好出现 n/1000 次。而且您无法在 O(n) 中对其进行排序。

标签: arrays sorting data-structures


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2013-12-09
    • 2014-09-01
    相关资源
    最近更新 更多