繁体   English   中英

添加到列表,然后对vs FindLastIndex进行排序,然后插入

[英]Add to list then sort vs FindLastIndex then insert

我有对属性排序的项目列表。 我想将另一个项目添加到列表中,但仍获得排序列表。 我看到2种简单的方法可以做到这一点,但是哪个更快/更好?

  • 将项目添加到列表,然后对列表进行排序或
  • 使用FindLastIndex,然后在索引+ 1上插入项目

还是我不知道的另一种方式?

这是一些有趣的事实:

选项1:1)在列表中插入所有项目。 只需插入将占用O(1)。 2)通过某种排序算法对列表进行排序。 最快的最坏情况是O(n log n)。

选项2:1)查找。 使用二进制搜索,最坏的情况是O(log n),但不是您的情况:)(您使用FindLastIndex的情况是一个谓词:此方法是O(n)操作,其中n是数组的长度。)2)插入数字将为O(1)。

基本上,如果您只想在最后一个索引中添加项目,那么第二个选项肯定是更快和最好的选择。

我认为

使用FindLastIndex,然后在索引+ 1上插入项目

应该更好,因为在诉诸过程中,至少过程会遍历列表一次:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM