Очевидно "OrderBy" LINQ был первоначально указан столь же нестабильный, но ко времени Косатки он был указан как стабильный. Не вся документация была обновлена соответственно - рассматривают эти ссылки:
Но если OrderBy LINQ теперь "стабилен", то это означает, что это не использует quicksort (который по сути нестабилен) даже при том, что в некоторой документации (например, книга Troy) говорится, что это. Таким образом, мой вопрос: если не quicksort, то то, каков фактический orderBy LINQ's алгоритма, использует?
Для LINQ to Objects используется стабильный квиксорт. Для любого другого типа LINQ это остается на усмотрение базовой реализации.
Я понимаю, что OrderBy
переводится в SQL, который выполняет сортировку в базе данных. По крайней мере, в случае LINQ to SQL
Отражатель загрузки, открытый для System.Linq.EnumerableSorter, показывает, что Linq2Objects использует быструю сортировку