谁能请指教?也是使用可自定义或可选择的算法?什么排序算法并在.NET框架实现
7
实现在.NET类似IComparable的什么排序算法并使用.NET实际的基础数据进行排序时
A
回答
14
有两大因素。
Array.Sort
(其排序就地阵列)使用unstableQuicksort。
这是通过List<T>.Sort
内部使用相同的实现,根据MSDN文档:
该方法使用
Array.Sort
,其 使用快速排序算法。
的Enumerable.OrderBy<TSource, TKey>
方法(该方法进行排序的输入序列的拷贝)使用稳定快速排序。
据我所知,这些都是在.NET BCL仅有的两个排序实现。
4
的MSDN Documentation状态,所使用的排序算法是快速排序(至少对于阵列) - 这是不可选或可定制的。
注意,它不是IComparable
接口,以指定排序方法使用,其向下的方法或类是做排序(通常的阵列或列表,但它可以是任何方法),例如其完全可能的阵列和Lists使用完全不同的算法(虽然在现实中都使用快速排序)
这意味着,如果你真的想你可以使用另一种算法实现自己的排序方法排序。
相关问题
- 1. 排序算法实现在MIPS
- 2. .NET框架中为什么没有托管的MD5实现?
- 3. 使用什么GUI框架实现了Mono .NET Windows.Forms?
- 4. 冒泡排序算法实现
- 5. 自然排序算法实现困境
- 6. 实体框架和排序
- 7. 什么是.NET框架
- 8. 什么是.NET架构和什么是.NET框架?
- 9. 什么BDD框架在.net中流行?
- 10. 搜索算法(已经实现了排序算法)
- 11. 实现合并排序C++
- 12. Java合并排序实现
- 13. 在.NET框架中,为什么会出现PointF(float)并且没有“PointD”(double)?
- 14. (.NET)什么类实现Microsoft.Office.Interop.Outlook.TimeZone
- 15. .NET实体框架
- 16. 这个排序算法叫什么?
- 17. 这是什么样的排序算法?
- 18. 这个排序算法叫做什么?
- 19. 这个合并排序实现为什么不起作用?
- 20. 什么是实体框架
- 21. 为什么实体框架?
- 22. 合并排序Java算法
- 23. 在C++中实现合并排序
- 24. 无法获得在实体框架中的排序工作
- 25. 实现并行算法来计算pi
- 26. 在java中实现公共API。什么框架?
- 27. 实体框架 - 重新排序元素
- 28. 使用ado.net实体框架排序gridview
- 29. “使用实体框架排序Col1,Col2”
- 30. C#实体框架 - 排序和采取
http://stackoverflow.com/questions/204805/which-sorting-algorithm-is-used-by-net-in-icomparer或http://stackoverflow.com/questions/1854604/which-sorting-algorithm - 二手-在净数组排序法阵排序 我很惊讶的“新问题”对话框并没有表现出相似的问题,当你进入这一个。我不惊讶有人在询问之前没有进行搜索。 – 2011-05-11 03:24:35
[这种情况已经改变(https://msdn.microsoft.com/en-us/library/6tf1f0bc(V = VS.100)的.aspx),因为.NET 4.5:现在插入排序对于n <16,以其他方式与开始当分区数量(递归深度?)超过2 * Log^N时,快速排序并切换到Heapsort。调用:[Introsort](https://en.wikipedia.org/wiki/Introsort) – Laoujin 2015-08-06 23:38:52