我现在正在处理合并排序的受侵害版本。我用C++和C#实现了它。然后分别将它们与stl sort和array.sort()算法进行比较。在C++中,我得到了相等(有时更好)的结果。但在C#中,我不得不使用不安全的代码来使用指针。在这里,性能与默认排序并无太大的可比性。所以,我想知道 -
1.在stl和.net基类库中使用哪些算法?(更好的链接)
2.不安全的代码是否存在性能问题?
3.对于测量新算法性能的任何建议?在stl和.net基本库默认搜索中使用哪种排序算法?
0
A
回答
6
.NET使用Quicksort的变体(Sedgewick的中位数为3的Quicksort)。除非你是排序专家,否则如果你可以击败内置的对各种数据进行排序(包括随机,已经排序和反向排序的排序),我会感到惊讶。采用不安全的代码通常是一个坏主意......
1
STL排序可能取决于实现,但(as wikipedia says)它通常是introsort,quicksort和heapsort的组合。它必须具有O(n log n)比较的平均复杂度。
0
.NET使用QuickSort。您可以使用Reflector查看System.Collections.Generic.ArraySortHelper中的实现
在大多数情况下,即使最差情况下执行时间较长,QuickSort的运行速度也会比MergeSort快。标准QuickSort也有一些改进,我认为,但我不确定是否使用了这些改进。
我似乎还记得使用QuickSort的STL,但我并不完全确定。
+0
STL-sort取决于实现 - 通常有许多algortihms相结合(IntroSort = QuickSort + HeapSort + InsertionSort) – Dario 2009-06-07 10:40:59
相关问题
- 1. STL的列表使用哪种排序算法:sort()?
- 2. 搜索,排序和图算法问题
- 3. mysql使用哪种算法搜索表中的一行?
- 4. PHP使用哪种哈希算法session.hash_function默认混合
- 5. .net搜索算法?
- 6. 如何使用STL容器实现库排序算法?
- 7. 在Java中搜索和排序算法的高效实现
- 8. 担保对STL并行搜索算法
- 9. Facebook在使用其搜索API时提供了哪种排名?
- 10. SortBy在Spark中使用哪种算法?
- 11. Matlab在SVD中使用哪种算法?
- 12. UserPrincipal.FindByIdentity使用哪种默认IdentityType类型?
- 13. STL排序算法需要帮助
- 14. 默认FB搜索
- 15. 使用php和mysql高级排序和搜索mysql数据库
- 16. 基本基数排序算法中可以进行哪些增强?
- 17. 想和排序,搜索,使用jQuery
- 18. 默认排序
- 19. 使用默认搜索模块
- 20. 搜索算法(已经实现了排序算法)
- 21. 在firefox搜索栏中查找用户使用的默认搜索引擎
- 22. 在linq c中禁用默认排序#
- 23. 在ObjectListView中应用默认排序列
- 24. 使用三种方法在文本中进行模式搜索
- 25. PHP的usort适用哪种排序算法?
- 26. 使用本地类与STL算法
- 27. 哪一种排序算法在NSSortDescriptor之后?
- 28. 何时使用哪种排序算法,什么时候不应该使用
- 29. 在Python中搜索和排序字典
- 30. C++项目取决于排序和搜索算法
downvoters应该留言..... – 2015-08-25 20:47:20