Адаптивные и неадаптивные алгоритмы сортировки

Опубликовано: 27 Февраля, 2023

В некоторых задачах сортировки, если данные уже отсортированы, сложность алгоритма сортировки меняется. То есть можно сказать, что временная сложность зависит от порядка данного ввода.

Based on the dependency of time complexity on the arrangement of array, the sorting algorithms can be divided into two groups:

  1. Adaptive Sorting Algorithms
  2. Non-adaptive Sorting Algorithms

Адаптивные алгоритмы сортировки:

The sorting algorithms in which the order of elements affects the time complexity of the sorting algorithm is known as an adaptive sorting algorithm.

При адаптивной сортировке, если данные уже отсортированы, алгоритм не будет переупорядочивать элементы. В результате это уменьшает количество итераций и повышает скорость выполнения.

Вот список адаптивных алгоритмов сортировки:

  1. Сортировка вставками.
  2. Быстрая сортировка
  3. Пузырьковая сортировка

В случае алгоритмов адаптивной сортировки, если массив уже отсортирован, для выполнения сортировки требуется линейное время, т. е. время O(N).

Преимущества адаптивных алгоритмов сортировки:

  • Когда данные уже отсортированы, на это уходит меньше времени.
  • Обычно они загружаются быстрее.
  • Улучшена скорость выполнения.

Неадаптивные алгоритмы сортировки:

The sorting algorithms in which the order of elements of the data doesn’t affect the time complexity of the sorting algorithms are known as non-adaptive sorting algorithms.

В неадаптивном алгоритме временная сложность остается неизменной для любого порядка массива. Алгоритм неадаптивной сортировки пытается принудительно отсортировать все элементы.

Вот список алгоритмов неадаптивной сортировки:

  1. Сортировка выбором
  2. Сортировка слиянием
  3. Куча сортировки.

Преимущества неадаптивных алгоритмов сортировки:

В случае неадаптивной сортировки порядок элементов не влияет на временную сложность. Это помогает в ситуациях, когда порядок элементов не может быть угадан или заранее неизвестен. В таких случаях такие алгоритмы, как сортировка слиянием или сортировка кучей, работают с их обычной сложностью O (N * logN), что в худшем случае быстрее, чем многие другие.

РЕКОМЕНДУЕМЫЕ СТАТЬИ