Web*_*Dev 5 c c# java algorithm
可能重复: 按线性时间排序?
假设给出了一个n个元素的序列S,每个元素都是[0,n ^ 2-1]范围内的整数.我们可以在O(n)时间内对它进行排序吗?
请不要介意我问太多面试问题.我只是在说.
Cap*_*ffe 10
没有.
唯一的前提条件是0-N²范围内的整数.
任何涉及"当N很小"的语句都会使任何基于O的参数无效.
joe*_*ely -2
如果有 n^2-1 位可用内存,只需扫描序列,将序列值索引的每个位设置为 1。即序列大小的 O(n)。随后,测试存在性是 O(1) 操作。
当然,如果你想把排序后的序列读出来,那就是O(n^2),因为你需要扫描整个n^2-1位的集合来寻找1。
归档时间:
14 年,11 月 前
查看次数:
2032 次
最近记录:
13 年,2 月 前