Сортировка массивов

Что такое сортировка массива?

Сортировкой или упорядочением массива называется расположение его элементов по возрастанию (или убыванию). Если не все элементы различны, то надо говорить о неубывающем (или невозрастающем) порядке. Вообще говоря, это большая и сложная тема, в которой известно много различных алгоритмов.

Какие критерии включает в себя сортировка?

Критерии оценки эффективности этих алгоритмов могут включать следующие параметры:

  • количество шагов алгоритма, необходимых для упорядочения;

  • количество сравнений элементов;

  • количество перестановок, выполняемых при сортировке.

Рассмотрим три простейших метода сортировки массивов

Сортировка методом пузырька

Существует множество методов сортировки. Одни из них являются более эффективными, другие – проще для понимания. Достаточно простой для понимания является сортировка методом пузырька, который также называют методом простого обмена. В чем же он заключается, и почему у него такое странное название: "метод пузырька"? Как известно воздух легче воды, поэтому пузырьки воздуха всплывают. Это просто аналогия. В сортировке методом пузырька по возрастанию более легкие (с меньшим значением) элементы постепенно "всплывают" в начало массива, а более тяжелые друг за другом опускаются на дно (в конец массива).

Insert-sort или Сортировка вставками

Сортировка вставками - это алгоритм сортировка, в котором все элементы массива просматриваются поочередно, при этом каждый элемент размещается в соответственное место среди ранее упорядоченных значений.

Алгоритм работы сортировки вставками заключается в следующем:

  • в начале работы упорядоченная часть пуста;

  • добавляем в отсортированную область первый элемент массива из неупорядоченных данных;

  • переходим к следующему элементу в неотсортированных данных, и находим ему правильную позицию в отсортированной части массива, тем самым мы расширяем область упорядоченных данных;

  • повторяем предыдущий шаг для всех оставшихся элементов.

Quick-sort или Быстрая сортировка.

Краткое описание алгоритма:

  1. выбрать элемент, называемый опорным.

  2. сравнить все остальные элементы с опорным, на основании сравнения разбить множество на три — «меньшие опорного», «равные» и «большие», расположить их в порядке меньшие-равные-большие.

  3. повторить рекурсивно для «меньших» и «больших».