.NET框架实现了什么排序算法

发布于 2024-11-06 04:30:07 字数 91 浏览 1 评论 0原文

有人可以建议在 .NET 中实现 IComparable 之类的东西时 .NET 使用什么排序算法来实际对底层数据进行排序吗?另外,所使用的算法是可定制的还是可选择的?

Could anyone please advise when implementing something like IComparable in .NET what sorting algorithm does .NET use to actually sort the underlying data? Also is the algorithm used customizable or selectable?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

软糖 2024-11-13 04:30:07

有两个大人物。

Array.Sort(就地对数组进行排序)使用不稳定 快速排序

这与 List.Sort,根据MSDN文档:

此方法使用Array.Sort,它
使用快速排序算法。

Enumerable.OrderBy方法(对输入序列的副本进行排序)使用稳定的快速排序

据我所知,这是 .NET BCL 中仅有的两个排序实现。

There are two biggies.

Array.Sort (which sorts an array in-place) uses an unstable Quicksort.

This is the same implementation used internally by List<T>.Sort, according to the MSDN documentation:

This method uses Array.Sort, which
uses the QuickSort algorithm.

The Enumerable.OrderBy<TSource, TKey> method (which sorts a copy of an input sequence) uses a stable Quicksort.

As far as I know, these are the only two sorting implementations in the .NET BCL.

音盲 2024-11-13 04:30:07

MSDN 文档 指出使用的排序算法是快速排序(至少对于arrays) - 这是不可选择或可定制的。

请注意,它不是指定要使用哪种排序方法的 IComparable 接口,它取决于执行排序的方法或类(通常是数组或列表,但也可以是任何方法),例如例如,数组和 列表 完全有可能使用完全不同的算法进行排序(尽管实际上两者都使用快速排序)

这意味着如果您确实愿意,您可以使用替代算法实现您自己的排序方法。

The MSDN Documentation states that the sorting algorithm used is Quicksort (at least for arrays) - This is not selectable or customizable.

Note that its not the IComparable interface that specifies what sorting method to use, its down to the method or class that is doing the sorting (normally an array or list, but it could be any method), for example its completely possible for arrays and Lists to sort using completely different algorithms (although in reality both use Quicksort)

This means that if you really want to you can implement your own sorting method using an alternative algorithm.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文