Цікаво, чому Java
і .NET Framework
використовує різні алгоритми сортування за замовчуванням.
У Java Array.Sort()
використовується алгоритм сортування об'єднань за замовчуванням і, як каже Wikipedia.com :
У Java методи Arrays.sort () використовують сортування злиття або відрегульований quicksort залежно від типів даних та для ефективності реалізації переходять на сортування вставки, коли сортується менше семи елементів масиву
У .NET Framework Array.Sort/List.Sort()
використовується алгоритм сортування за замовчуванням ( MSDN ) Quick Sort :
List.Sort () використовує Array.Sort, який використовує алгоритм QuickSort. Ця реалізація виконує нестабільний сорт; тобто, якщо два елементи рівні, їх порядок може не зберігатися. На відміну від них, стабільний сорт зберігає порядок елементів, рівних.
Переглядаючи чудову таблицю "Порівняння алгоритмів", ми бачимо, що обидва алгоритми мають досить різну поведінку з точки зору використання гіршого випадку та використання пам'яті:
І те, Java
і .NET
інше є чудовими рамками для розвитку корпоративних рішень, обидва мають платформи для вбудованої розробки. То чому вони використовують різні алгоритми сортування за замовчуванням, будь-які думки?