В некоторых приложениях, когда список элементов сортируется по некоторому критерию, сохранение первоначального порядка элементов, которые сравниваются равными, не требуется. В других приложениях это необходимо. Методы сортировки, которые сохраняют расположение элементов с соответствующими ключами (так называемые "стабильные сортировки", обычно либо намного медленнее, чем те, которые не ("нестабильные сортировки"), либо они требуют значительного объема временного хранения (и все же несколько медленнее Первой подпрограммой сортировки «стандартной библиотеки», которая стала широко распространенной, была, вероятно, функция qsort()
, включенная в стандартную библиотеку C. Эта библиотека часто использовалась бы для сортировки списков, которые были большими по отношению к общему объему доступной памяти. библиотека была бы гораздо менее полезной, если бы требовалось количество временного хранилища, пропорциональное количеству элементов в массиве, которые должны быть отсортированы.
Методы сортировки, которые будут использоваться в таких средах, как Java или .net, могут практически использовать гораздо больше временного хранилища, чем было бы приемлемо в подпрограмме C qsort (). Временное требование к памяти, равное размеру сортируемого массива, в большинстве случаев не представляет какой-либо конкретной проблемы. Тем не менее, поскольку библиотеки традиционно предоставляют реализацию Quicksort, похоже, это шаблон, за которым следует .net.