在O(nlogn)时间内查找数组的模式

时间:2017-12-26 19:17:42

标签: algorithm sorting

我被要求在O(nlogn)中找到一个数组的模式。我可以在O(n)时间找到它,但不能想到另一种方式在O(nlogn)。我应该使用随机算法吗? (我的O(n)解决方案是错误的)。我的O(n)解决方案类似于计数排序算法。

2 个答案:

答案 0 :(得分:2)

  1. 对数组 O(n log n)
  2. 的元素进行排序
  3. 遍历数组并计算相等相邻元素的数量。最高计数是模式。的 O(n)的
  4. 所以一起需要 O(n log n)时间

答案 1 :(得分:0)

http://bigocheatsheet.com/

通过那个方便的图表,您将看到:

  • O(n)的性能优于O(n log n)
  • 满足最坏情况O(n)的任何算法都满足最坏情况O(n log n)

我的猜测是,如果你的分析是正确的,那么你最初提出的问题并没有想到比你更好的最坏情况解决方案。