![]() |
1
2
我之前的答案使用了反向索引表,但其中包含一些错误(现在已修复),并且比以下代码更难理解。 这实际上是答案中给出的所有解决方案中最慢的一个——为了获得最佳性能,请查看我的另一个答案。
不需要比较函数的第二部分(比较指数的部分),因为
|
![]() |
2
1
这会在它搜索的主数组中运行一次,在结果数组中的适当位置插入项目:
对于大型数组,这甚至应该相当快,因为大多数时候内部循环应该只进行一次迭代。 |
![]() |
3
1
这是使用索引表对我之前的答案进行除错的版本。我做了一点基准测试,对于问题中给出的输入,这个解决方案将比到目前为止在这个线程中建议的任何其他方法都要快:
|
![]() |
4
0
如果foo与所需的结果大小相比非常大,那么在遇到foo插入时将每个元素排序到结果中可能会更快。 |
![]() |
5
0
|
![]() |
6
0
计算机科学答案: 问题陈述:给定一个长度为N的大数组X和一个小数字m<N(这里m=10),产生一个长度为m的数组Y,其中Y的每个元素都包含对{i,X[i]},使得X{i}的集合是X的m个最大元素。 如果m远小于N,则循环X的元素并将其排序到Y中,丢弃对以保持最多m个元素。(如文中所述) 排序X将花费O(N log N)个元素。在X上迭代并排序到Y应该只需要O(N log m)个元素。 |
![]() |
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 6 月前 |
![]() |
Alex · 在轻量级中同时解构和不解构变量 6 月前 |
![]() |
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 6 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 6 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 6 月前 |