我有一个列出属性的项目列表。我想在列表中添加另一个项目,仍然可以获得一个排序列表。我看到两种简单的方法可以做到这一点,但哪种更快/更好?
或者还有另一种我不知道的方式吗?
答案 0 :(得分:2)
以下是一些有趣的事实:
选项1:1)插入列表中的所有项目。只需插入即可 O(1)。 2)通过一些排序算法对列表进行排序。最快的情况 是O(n log n)。
选项2:1)查找。使用二进制搜索,最坏的情况是O(log n),但不是你的情况:)(你的 使用FindLastIndex这是一个谓词:这个method是一个 O(n)操作,其中n是数组的长度。)2)插入数字 将是O(1)。
基本上如果你想在最后一个索引中添加项目第二个选项肯定是更快,最好的选择。
答案 1 :(得分:0)
使用FindLastIndex然后在index + 1
上插入项目
应该更好,因为在诉诸程序时,至少有一个进程将遍历列表一次:)