Просто интересно почему Java
и .NET Framework
использует другой алгоритм сортировки по умолчанию.
В Java по умолчанию Array.Sort()
используется алгоритм сортировки слиянием , и, как сказано в Wikipedia.com :
В Java методы Arrays.sort () используют сортировку слиянием или настроенную быструю сортировку в зависимости от типов данных и для переключения эффективности реализации на сортировку вставки, когда сортируется менее семи элементов массива
В .NET Framework Array.Sort/List.Sort()
использует быструю сортировку в качестве алгоритма сортировки по умолчанию ( MSDN ):
List.Sort () использует Array.Sort, который использует алгоритм QuickSort. Эта реализация выполняет нестабильную сортировку; то есть, если два элемента равны, их порядок может не сохраниться. Напротив, стабильная сортировка сохраняет порядок элементов, которые равны.
Глядя на большую таблицу «Сравнение алгоритмов», мы видим, что оба алгоритма ведут себя довольно по-разному с точки зрения наихудшего случая и использования памяти:
И то, Java
и другое .NET
- отличная платформа для разработки корпоративных решений, обе имеют платформы для встраиваемых разработок. Так почему они используют другой алгоритм сортировки по умолчанию, есть мысли?