Я в университете, пытаясь научиться использовать быстрый сортировку. Я собираюсь сделать программу через пару недель, но сначала я пытаюсь понять, как это работает. Я нашел домашнюю проблему, которая выглядит так, как будто это поможет мне понять. Единственная проблема заключается в том, что, посмотрев на Википедию и пару других сайтов, я просто оставлен в замешательстве и безнадежен.Учимся делать quicksort
Применить quicksort к последовательности A = {6, 4, 3, 9, 4, 7, 5}. Вместо того, чтобы на основе шарнира медианного из-трех, использовать первый элемент подпоследовательности. (Это знаменует риск наихудших результатов, но проблема проще решить вручную.) Покажите свою работу следующим образом. Указывает, когда элемент становится стержнем, поместив квадрат вокруг него. Позже укажите, что элемент/является стержнем, подчеркивая его. Используйте маркеры точек и стрелки, чтобы указать , как левый-правый поиск элементов для подкачки. Выполнение работы как рекурсия диктует: , то есть обрабатывать левые подпоследовательности перед правыми подпоследовательностями. То есть,
6 4 3 9 4 7 5 определить Pivot
5 4 3 9 4 7 6 двигаться стержень из пути и поиска элементов для замены
Может кто-нибудь объяснить мне, шаг шаг за шагом, как это работает?
Есть много алгоритмов перегородки (алгоритмы перестраивая последовательность вокруг стержня). Можете ли вы описать, какой из них вы должны использовать? – templatetypedef
[эта ссылка поможет вам?] (Http://www.sorting-algorithms.com/quick-sort), объяснение работы, а также визуализация того, что она делает в разных обстоятельствах. – Wrikken
Я думаю, что википедия объясняет это довольно хорошо ... http://en.wikipedia.org/wiki/Quicksort – Fredrik