我有一个链表实现,我正在试验 Mergesort 和 QuickSort 算法。
我不明白为什么 std::list 中的排序操作如此之快。查看 linux 下的 std::list ,它似乎也是链表,而不是基于数组的列表。
我在这里尝试的合并排序与 Dave Gamble 的版本几乎相同: Merge Sort a Linked List
另外,我想我会尝试基于此代码的简单快速排序:http: //www.flipcode.com/archives/Quick_Sort_On_Linked_List.shtml
令人惊讶的是,使用 std::list 和 sort 对 1000 万个随机数进行排序比其他任何一个都快 10 倍左右。
对于那些询问的人,是的,我需要为这个项目使用我自己的列表类。