Algorithm Microsoft使用哪种排序算法';s STL::list::sort()?
注意:我无意中发布了没有指定我正在使用哪个STL实现的帖子,我觉得它不能真正更新,因为它会使大部分答案过时 <正确的问题是——假设我使用微软Visual C++的STL库,下面的代码中使用了哪种排序算法?Algorithm Microsoft使用哪种排序算法';s STL::list::sort()?,algorithm,visual-c++,sorting,stl,Algorithm,Visual C++,Sorting,Stl,注意:我无意中发布了没有指定我正在使用哪个STL实现的帖子,我觉得它不能真正更新,因为它会使大部分答案过时 不能使用内卷排序——内向排序不稳定,而List.StU.()/Cuff>需要稳定。@斯蒂芬艾格蒙特:C++标准的第23.2.2.4/31节。您正在查看的文档是std::sort,而不是std::list::sort。@Stephan Eggermont:这是关于std::sort(),而不是std::list::sort()std::sort()不稳定,但不允许std::list::sor
list<int> mylist;
// ..insert a million values
mylist.sort();
列出mylist;
//…插入一百万个值
mylist.sort();
据我所知,它是一款入门软件:至少在最新版本(例如VC++9.0/VS 2008)中,MS VC++使用了合并排序。只是为了不必依赖二手信息,排序代码就在列表
标题中-大约有35行
似乎是一种修改的迭代(非递归)合并排序,最多有25个存储箱(我不知道这种合并排序变体是否有特定名称)。MSVC6附带的STL是p.J.Plauger版本的库(Dinkumware),它在
std::list::sort()中使用了合并排序。我不知道MS的包的后面版本。 <代码>清单.SoTo()/Cyto>不能使用内卷排序——内向排序不稳定,而List.StU.()/Cuff>需要稳定。@斯蒂芬艾格蒙特:C++标准的第23.2.2.4/31节。您正在查看的文档是std::sort,而不是std::list::sort。@Stephan Eggermont:这是关于std::sort()
,而不是std::list::sort()
<允许code>std::sort()
不稳定,但不允许std::list::sort()
但std::list::sort()
不稳定。