找到确切的位置然后插入或添加然后排序?哪个更好?

时间:2014-03-22 14:23:39

标签: c# .net-2.0 quicksort quick-search

我们有一个包含大型类(相同类型)的> 1000项的大清单。 列表被非常频繁地插入或删除。一次插入约10或20个,30个项目。对于每个项目,我找到使用快速搜索算法插入的确切位置。 但是我想知道我是否将每个项目添加到列表的末尾然后使用List.Sort进行排序(我相信MS使用快速排序算法)然后它会更好:消耗更少的CPU像电流? 我正在使用C#,。Net Framework 2.0。

1 个答案:

答案 0 :(得分:2)

对这类问题很少有一般回答。这在很大程度上取决于您的情况。但这是你提出的两个选择之间的中间建议:

对要插入的项目列表进行排序(这需要根据您的描述对10 - 30项进行排序)。然后,按顺序插入这些。请注意,一旦找到插入第一个项目的位置,插入第二个项目的位置必须严格 该位置后(依此类推,对于每个后续项目),因此您不需要再次从头开始搜索。插入的列表只需要在这种情况下进行搜索,因为它会在每次插入后保持其排序。