Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Словесное описание алгоритма.Стр 1 из 17Следующая ⇒
Сортировка Цель практического занятия по данной теме - ознакомиться с простейшими методами сортировки и приобрести навыки их использования и оценивания их сложности. Под сортировкой понимают процесс перестановки объектов данного множества в определенном порядке. Цель сортировки - облегчить последующий поиск элементов в отсортированном множестве. Сортировка простыми включениями Этот метод обычно заключается в следующем. Элементы условно разделяются на готовую последовательность аi, …аi-1, и входную последовательность а1, …аn. На каждом шаге, начиная с i = 2 и увеличивая i на единицу, берут i -й элемент входной последовательности и передают в готовую последовательность, вставляя его на подходящее место. При поиске подходящего места удобно чередовать сравнения и пересылки, т.е. как бы " просеивать" сравнивая его с очередным элементом а и либо вставляя х, либо пересылая аi направо и продвигаясь налево. Заметим, что " просеивание" может закончиться при двух различных условиях: 1. Найден элемент аi с ключом, меньшим, чем ключ х. 2. Достигнут левый конец готовой последовательности. Этот типичный пример цикла с двумя условиями окончания дает возможность рассмотреть хорошо известный прием фиктивного элемента (" барьера"). Его можно легко применить в этом случае, обновив барьер а 0 = х. (Заметим, что для этого нужно расширить диапазон индексов в описании а до 0,..., n.) Процесс сортировки простыми включениями показан в табл. 4.1 на примере восьми случайно взятых чисел. Словесное описание алгоритма. 0. В готовую подпоследовательность записывается а1, во входную – а2,....аn. 1. i = 2. 2 Переносим элемент х = а из входной подпоследовательности в готовую так, чтобы готовая подпоследовательность осталась под сортированной. Для этого: а) расширяем готовую подпоследовательность слева: а0 = х - барьер;
б) просматривая элементы готовой подпоследоватепьности слева направо, в) если j = j - 1, то переходим к пункту г), иначе расширяем готовую г) ai+1 = x д) i = i + 1. Если i < =n, то переходим к п.2, иначе сортировка заканчивается.. Таблица 4.1
Алгоритм сортировки простыми включениями легко можно улучшить, пользуясь тем, что готовая последовательность а2,....аn, в которую нужно включить новый элемент, уже упорядочена. Поэтому место включения можно найти значительно быстрее. Очевидно, что здесь можно применить бинарной поиск, который исследует средний элемент готовой последовательности и продолжает деление пополам, пока не будет найдено место включения. Модифицированный алгоритм сортировки называется сортировкой бинарными включениями.
|