注意:我不小心发布了this question而未指定我正在使用哪个STL实现,我觉得它无法真正更新,因为它会使大多数答案过时。 < / p>
所以,正确的问题是 - 假设我使用的是Microsoft Visual C ++的STL库,在下面的代码中使用了哪种排序算法?:
list<int> mylist;
// ..insert a million values
mylist.sort();
答案 0 :(得分:8)
因此您不必依赖秒针信息,排序代码就在list
标题中 - 它大约是35行。
似乎是一个修改后的迭代(非递归)合并排序,最多有25个bin(我不知道这个合并排序变量是否有特定的名称)。
答案 1 :(得分:3)
至少在最近的版本中(例如VC ++ 9.0 / VS 2008),MS VC ++使用合并排序。
答案 2 :(得分:2)
std::list<>::sort()
中使用了merge-sort。我不知道MS的软件包的更高版本。
答案 3 :(得分:-1)
据我所知,它是Introsoft:http://en.wikipedia.org/wiki/Introsort