我们有一个超过1000个项目的大列表,其中包含大类(相同类型)。列表的插入或删除非常频繁。一次插入约10或20,30个项目。对于每一项,我都会使用快速搜索算法找到要插入的确切位置。但是我想知道是否将每个项目都添加到列表的末尾,然后使用List.Sort进行排序(我相信MS使用快速排序算法),这样会更好:像当前一样消耗更少的CPU?我正在使用C#、. Net Framework 2.0。
对于这样的问题,几乎没有一个普遍的答案。这在很大程度上取决于您的方案。但这是您提出的两个选择之间的中间建议:
对要插入的项目列表进行排序(这需要根据您的描述对10-30个项目进行排序)。然后,依次插入这些。请注意,一旦你找到要插入的第一个项目的位置,该位置插入第二个项目,必须严格经过该位置(依此类推,每个后续项),所以你不需要搜索再次从开头开始做。在这种情况下,只需搜索要插入的列表,因为它将在每次插入后保持其顺序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句