ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
ОСНОВНЫЕ МЕТОДЫ СОРТИРОВКИ ЛИНЕЙНЫХ СТРУКТУР ДАННЫХ
Процесс сортировки, проводимой любым методом, состоит из нескольких циклов. В каждом цикле осуществляется просмотр всей последовательности и производятся определенные операции с ее элементами. Один цикл обработки называется проходом. В зависимости от используемого метода сортировки упорядоченная последовательность размещается на том же участке памяти, что и исходная, или требует для своего формирования свободного участка памяти. В первом случае метод, минимален по памяти. Рассмотрим основные методы сортировки. Метод выбора. При сортировке этим методом упорядоченная последовательность записей создается на том же участке памяти, что и исходная последовательность. В течение первого прохода осуществляется поиск наименьшего элемента; После того как этот элемент найден, его меняют местами с первым элементом исходной последовательности, в результате чего наименьший элемент занимает первую позицию в формируемой упорядоченной последовательности. Затем осуществляется поиск следующего наименьшего элемента среди оставшихся. Найденный элемент меняется местами со вторым элементом исходной Последовательности. После второго прохода окажется сформированной последовательность из двух элементов, первый из которых меньше, второго. Поиск элементов со следующими наименьшими значениями ключа и помещение их в соответствующие позиции исходной последовательности продолжается до тех пор, пока все элементы не будут отсортированы в восходящем порядке. Для сортировки последовательности из N элементов требуется N— 1 проходов, так как на каждом проходе в соответствующую позицию упорядоченной последовательности заносится только один элемент. Метод обмена. При сортировке этим методом упорядоченная последовательность создается на том же месте в памяти, где располагалась исходная последовательность. В процессе сортировки производится попарное сравнение соседних элементов. Если порядок между сравниваемыми элементами нарушен, они меняются местами. Этот метод обмена называется часто методом пузырька, так как наименьшие элементы с каждым проходом, подобно пузырькам, "всплывают" по направлению к первой позиции последовательности.Число проходов равно N — 1
Метод вставок. При использовании этого метода сортировки упорядоченная последовательность создается на свободном участке памяти. Под сортировку выделяется объем памяти, равный длине отсортированного массива записей. Так как исходная и упорядоченная последовательности располагаются в разных участках памяти, используем для их обозначения различные символы. Элементы исходной последовательности обозначим Ai, а элементы упорядоченной последовательности Bj. Первый элемент Аi исходной последовательности А занимает первую позицию в свободном участке памяти, т.е. становится первым элементом B1 последовательности D. Элемент А2 сравнивается c B1. Если в результате сравнения оказалось, что А2 <B1,to элемент B1 передвигается на одну позицию, а элемент А2 занимает его прежнее место. Теперь в свободном участке памяти размещены два элемента B1 и B2, образующих последовательность, упорядоченную по возрастанию значений ключа. Последовательность из N элементов будет отсортирована за N проходов. Метод подсчета. Упорядоченная последовательность В создается в свободной области памяти в результате сортировки исходной последовательности А. Метод основан на том, что (К + 1)-й элемент упорядоченной последовательности превышает ровно К элементов и, следовательно, занимает (К + 1)-ю позицию. В процессе сортировки на каждом i-м проходе i-й элемент исходной последовательности попарно сравнивается со всеми остальными элементами. Если в результате сравнения установлено, что Ai > Аj то значение числа К увеличивается на единицу. По окончании прохода значение К оказывается равным числу элементов, меньших чем Ai. Номер позиции i-гo элемента в последовательности В равен K+1. Для сортировки последовательности из N элементов требуется N проходов, на каждом проходе выполняется N сравнений. Метод Шелла. Этот широко используемый метод, предложенный Д.Л. Шеллом в 1959 г., минимален по памяти и обеспечивает высокую скорость сортировки. Метод использует сравнения и перестановки элементов, как и метод вставок, однако в отличие от последнего в сравнении участвуют не соседние элементы, а отстоящие друг от друга на определенном расстоянии. При необходимости перестановки элементы перемещаются скачком на это же расстояние, а не на одну позицию, как в методе вставок. Для проведения сортировки описываемым методом последовательность из N элементов делится на N/2 групп или на (N - 1) /2, если N нечетно. Каждая группа содержит по два элемента. Если число элементов нечетно, то одна часть будет содержать три элемента. Элементы, принадлежащие одной труппе, отстоят на N/2 позиций. Это расстояние называют шагом. На рис. 11.5, иллюстрирующем этот метод, одиннадцать элементов исходной последовательности А разделены на пять групп с шагом, равным пяти. Элементы, принадлежащие одной группе, объединены скобками. Для сортировки последовательности из N элементов требуется около lоg2 N проходов. ВНЕШНЯЯ СОРТИРОВКА Когда объем сортируемых данных велик и превышает свободный объем ОП, то для сортировки используются ВЗУ. Обычно применяют МЛ, как наиболее дешевые и емкие ВЗУ. Наиболее общей формой внешней сортировки с применением МЛ является сбалансированное n-ленточное слияние. Для n-ленточного слияния требуется 2 п МЛ и 2 п лентопротяжных устройств. Исходная неупорядоченная последовательность, размещенная на одной МЛ, разносится на п МЛ следующим образом. Первая запись.— на первую МЛ, вторая - на вторую, п-я запись — на п-ю МЛ. В дальнейшем (п + 1) -я запись снова записывается на первую МЛ, (п + 2) -я — на вторую и т.д. до тех пор, пока вся исходная последовательность не будет распределена на п Мл. Сортировка методом слияния. Существует еще один метод сортировки элементов массива, эффективность которого сравнительно велика, - метод слияний.
Не нашли, что искали? Воспользуйтесь поиском:
|