Быстрая сортировка против сортировки слиянием
Опубликовано: 16 Января, 2022
Быстрая сортировка - это внутренний алгоритм, основанный на стратегии «разделяй и властвуй». В этом:
- Массив элементов многократно делится на части до тех пор, пока его нельзя будет разделить дальше.
- Это также известно как «сортировка обмена разделами» .
- Он использует ключевой элемент (стержень) для разделения элементов.
- Один левый раздел содержит все те элементы, которые меньше, чем основной, а один правый раздел содержит все те элементы, которые больше, чем ключевой элемент.
Сортировка слиянием - это внешний алгоритм, основанный на стратегии «разделяй и властвуй». В этом:
- Элементы снова и снова разделяются на два подмассива (n / 2), пока не останется только один элемент.
- Сортировка слиянием использует дополнительное хранилище для сортировки вспомогательного массива.
- Сортировка слиянием использует три массива, два из которых используются для хранения каждой половины, а третий внешний используется для хранения окончательного отсортированного списка путем объединения двух других, и затем каждый массив сортируется рекурсивно.
- Наконец, все подмассивы объединяются, чтобы получить размер n элементов массива.
Быстрая сортировка против сортировки слиянием
- Разделение элементов в массиве :
При сортировке слиянием массив делится всего на 2 половины (т.е. n / 2).
в то время как
В случае быстрой сортировки массив делится в любом соотношении. Нет необходимости делить массив элементов на равные части при быстрой сортировке. - Сложность наихудшего случая :
Наихудшая сложность быстрой сортировки - O (n2), так как в наихудшем состоянии требуется много сравнений.
в то время как
При сортировке слиянием наихудший случай и средний случай имеют одинаковую сложность O (n log n). - Использование с наборами данных :
Сортировка слиянием может хорошо работать с любым типом наборов данных, независимо от его размера (большого или маленького).
в то время как
Быстрая сортировка не работает с большими наборами данных. - Требуемое дополнительное место для хранения :
Сортировка слиянием не применяется, поскольку для хранения вспомогательных массивов требуется дополнительное пространство памяти.
в то время как
Быстрая сортировка на месте, так как не требует дополнительного хранилища. - Эффективность :
Сортировка слиянием более эффективна и работает быстрее, чем быстрая сортировка, в случае большего размера массива или наборов данных.
в то время как
Быстрая сортировка более эффективна и работает быстрее, чем сортировка слиянием, в случае меньшего размера массива или наборов данных. - Метод сортировки :
Быстрая сортировка - это метод внутренней сортировки, при котором данные сортируются в основной памяти.
в то время как
Сортировка слиянием - это метод внешней сортировки, при котором данные, которые должны быть отсортированы, не могут быть размещены в памяти и требуется вспомогательная память для сортировки. - Стабильность :
Сортировка слиянием стабильна, поскольку два элемента с одинаковым значением появляются в отсортированном выводе в том же порядке, что и во входном несортированном массиве.
в то время как
В этом сценарии быстрая сортировка работает нестабильно. Но его можно сделать стабильным, изменив код. - Предпочтительно для :
Для массивов предпочтительна быстрая сортировка.
в то время как
Сортировка слиянием предпочтительнее для связанных списков. - Местоположение ссылки :
Quicksort демонстрирует хорошую локальность кеша, и это делает быструю сортировку быстрее, чем сортировку слиянием (во многих случаях, как в среде виртуальной памяти).
Основа для сравнения | Быстрая сортировка | Сортировка слиянием |
---|---|---|
Разделение элементов в массиве | Разделение массива элементов происходит в любом соотношении, не обязательно деление пополам. | При сортировке слиянием массив делится всего на 2 половины (т.е. n / 2). |
Сложность наихудшего случая | О (п2) | O (nlogn) |
Хорошо работает на | Он хорошо работает на меньшем массиве | Он отлично работает с любым размером массива |
Скорость исполнения | Он работает быстрее, чем другие алгоритмы сортировки для небольших наборов данных, таких как сортировка по выбору и т. Д. | Он имеет стабильную скорость для данных любого размера. |
Требуется дополнительное место для хранения | Меньше (на месте) | Больше (не на месте) |
Эффективность | Неэффективен для больших массивов | Более эффективным |
Метод сортировки | Внутренний | Внешний |
Стабильность | Нестабильный | Стабильный |
Предпочтительно для | для массивов | для связанных списков |
Местонахождение ссылки | хороший | бедных |
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.