Linq OrderBy vs QuickSort
От: BlackEric http://black-eric.lj.ru
Дата: 18.08.19 19:52
Оценка:
Какой алгоритм сортировки реализует OrderBy Linq?
Моя реализация QuickSort получается раза в полтора быстрее.

Часть 2. Сравниваем скорость алгоритмов.
Генерим большой массив 50000 элементов, для сравнения по скорости

Начинаем сортировку:
QuickSort 50000 elements = 12 ms
QuickSortDesc 50000 elements = 11 ms
BubbleSort 50000 elements = 11526 ms
LinqSort 50000 elements = 18 ms

Часть 3. Сортируем большие размеры.
Генерим большой массив 50000000 элементов, для сравнения по скорости

Начинаем сортировку:
QuickSort 50000000 elements = 19266 ms
QuickSortDesc 50000000 elements = 15322 ms
LinqSort 50000000 elements = 41107 ms


Странно как-то...
https://github.com/BlackEric001
Re: Linq OrderBy vs QuickSort
От: Mystic Artifact  
Дата: 18.08.19 20:11
Оценка: 6 (1) +2
Здравствуйте, BlackEric, Вы писали:

BE>Странно как-то...

Я сомневаюсь, что там есть специализации для простого массива чисел.

Разница 1: Он сортирует не разрушая исходный массив (и вообще он принимает на вход последовательность элементов с заранее незаданным количеством).

Разница 2: Оно работает с комбинируемым компаратором. Ну т.е. OrderBy(...).ThenByDescending(...).ThenBy(...).
Re: Linq OrderBy vs QuickSort
От: karbofos42 Россия  
Дата: 19.08.19 03:56
Оценка: 6 (1)
Здравствуйте, BlackEric, Вы писали:

BE>Какой алгоритм сортировки реализует OrderBy Linq?

BE>Моя реализация QuickSort получается раза в полтора быстрее.

BE>

BE>Часть 2. Сравниваем скорость алгоритмов.
BE>Генерим большой массив 50000 элементов, для сравнения по скорости

BE>Начинаем сортировку:
BE>QuickSort 50000 elements = 12 ms
BE>QuickSortDesc 50000 elements = 11 ms
BE>BubbleSort 50000 elements = 11526 ms
BE>LinqSort 50000 elements = 18 ms

BE>Часть 3. Сортируем большие размеры.
BE>Генерим большой массив 50000000 элементов, для сравнения по скорости

BE>Начинаем сортировку:
BE>QuickSort 50000000 elements = 19266 ms
BE>QuickSortDesc 50000000 elements = 15322 ms
BE>LinqSort 50000000 elements = 41107 ms


BE>Странно как-то...


Изучайте на здоровье:
https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/OrderedEnumerable.cs
Re[2]: Linq OrderBy vs QuickSort
От: Jack128  
Дата: 20.08.19 07:52
Оценка: +1
Здравствуйте, Mystic Artifact, Вы писали:

MA>Здравствуйте, BlackEric, Вы писали:


BE>>Странно как-то...

MA> Я сомневаюсь, что там есть специализации для простого массива чисел.

MA> Разница 1: Он сортирует не разрушая исходный массив (и вообще он принимает на вход последовательность элементов с заранее незаданным количеством).


MA> Разница 2: Оно работает с комбинируемым компаратором. Ну т.е. OrderBy(...).ThenByDescending(...).ThenBy(...).


Разница 3: Linq сортировка — стабильная
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.