Yvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
-4
08:23, 24 августа 2010

Какой метод сортировки использует .NET FRAMEWORK?

Недавно прочел один пост на тему "Всё ещё сортируете "пузырьком?".

Если честно, то вообще никогда не задумывался, какой алгоритм сортировки использует метод Sort(), класса List<T> (и подобных классов в библиотеке .NET, и всех классов, которые работают с массивами в .NET). Но, в том посте, заинтересовали выкладки о производительности различных методов сортировки (того самого "пузырька" и метода Шелла).

И я задумался-таки, а не подкачали разработчики Майкрософта в проекте .NET?

В библиотеке MSDN, пришлось найти описание метода Sort(), класса List<T> и вот, привожу выдержку из ремарки к методу...

...This method uses Array.Sort, which uses the QuickSort algorithm. This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal...

...из которой следует, что разработчики библиотеки .NET не подвели, и использовали наиболее быстрый метод сортировки QuickSort (метод Чарльза Хоара). К тому же стоит учесть, что метод Array.Sort скомпилирован в машинный код, что само собой, положительно сказывается на производительности.

-4
137
0