【发布时间】:2016-03-14 17:05:40
【问题描述】:
我正在研究一种算法来查找数字数组中的第一个重复元素。我知道要做到这一点,我应该对我的数组进行排序(在 O(nlogn) 中使用合并排序),然后在对元素 (O(logn)) 执行二进制搜索时遍历数组。所以我的算法的总运行时间是 O(nlogn)+O(logn)= O(nlogn)。我的问题是我缺少什么来使它成为 O(nlog²n)。我不明白为什么日志会被平方。
问题陈述:
你收到一个整数列表,一次一个,a1,a2,... 我想要 你找到第一次出现的人工智能 以前,即找到最小的 i 使得所有 a1,a2,...,ai-1 是不同的,但对于某些
1≤j<i,ai=aj。描述 O(i log2 i) 时间 寻找最小 i 的算法。 ( 给出一个递归算法 使用主定理形成并显示其运行时间。 )
【问题讨论】:
-
是什么让你相信它应该是 O(nlog²n)?我怀疑你忘记了那里的大 O。
-
问题要求在 O(nlog^2n) 中找到此算法。我不确定为什么作为 nlogn 会更快。
-
很高兴向我们展示这个问题,如果这当然不是问题的话。 :)
-
您收到一个整数列表,一次一个,a1,a2,... 我希望您找到之前出现的第一次出现的 ai,即找到最小的 i使得所有 a1,a2,...,ai-1 都是不同的,但对于 some1≤j
-
我认为
O(n log2 n)不是O(n log^2 n)而是O(n log_2 n)- 基数 2 的日志
标签: algorithm sorting search big-o