Обзор
Быстрая сортировка - это алгоритм сортировки, разработанный Тони Холлом. В средней ситуации порядок n пунктов требует сравнения (NLOGN). На самом деле, быстрая сортировка обычно значительно быстрее, чем другие алгоритмы ο (NLOGN), поскольку ее внутренний цикл может быть эффективно реализован в большинстве архитектур, а в большинстве реальных данных она может определить выбор дизайна и уменьшить вероятность квадратичных терминов, требующих времени.
Быстрая сортировка, разделите записи, которые будут сортироваться на две независимые части через один заказ, где ключевые слова некоторых записей меньше ключевых слов другой части, а затем две записи продолжаются отсортировать отдельно, чтобы достичь цели порядок всей последовательности.
ИЗОБРАЖЕНИЕ ИСТОРИЯ:
шаг
При выборе контрольного элемента, первый элемент или последний элемент обычно выбирается для разделения записей, которые будут отсортированы на две независимые части через односторонний, где значения элементов некоторых записей меньше значений контрольных элементов. Элементы, записанные в другой части, больше, чем эталонное значение.
Пример
Необработанные данные:
3 5 2 6 2
Выберите 3 в качестве эталона
Первый раунд
Справа слева, чтобы найти что -то меньше 3, 2 совпадений, и отрегулировать 2 и 3 2 5 2 6 3 3 один раз, и направление поиска перевернуто, слева направо, чтобы найти что -то большее, чем 3, 5 совпадений, и отрегулировать 2 3 2 6 5, затем справа налево, чтобы найти что -то меньшее, чем 3, 2 совпадения, и отрегулировать 2 2 3 6 5.
Раунд 2
Тот же метод, что и выше, выполняется для [2 2] и 2 2 3 6 5
Третий раунд
Тот же метод, что и выше, выполняется для [6 5] и 2 2 3 5 6
Окончательный результат
2 2 3 5 6
Реализация кода (Java)
Пакет com.coder4j.main.arithmetic.sorting; Public Class Quick {Private Static int Mark = 0; ; "Get"); («Throwth of Progress» + Mark + "Разделение колеса, область:" + low + "-" + High); High) {while (low <high && array [high]> = base) {high--; + base + "Большое, изменение указателя:" + low + "-" + High); } / ** * Краткая сортировка массива; } /** * Quick Sort * * @param Array * @return */ public static int [] sort (int [] array) ");}}}Результаты результатов вывода теста:
Выберите все и поместите его в ноты. Разделение составляет 2 и 3. Второй раунд разделения составляет 2 и 3. Второй раунд разделения составляет 2 и 3. Второй раунд разделения составляет 2 и 3. Второй раунд разделения составляет 2 и 3. Второй раунд разделения составляет 2, а 2 - 3. 6. Третий раунд разделения - 2, 2, а 3 - 6. Второй раунд разделения 2 - 2, 2, 2, 2, 2 - 2 5. Последний раунд разделения составляет 2 - 2, а 3 - 5. Последний раунд разделения составляет 2 - 2, а 3 - 5. Последний результат составляет 2 - 2, а 3 - 5. 6. Последний результат - 2 2 3 5. 6.
После тестирования это согласуется с результатами в примере.