Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Словесное описание алгоритма.






Сортировка

Цель практического занятия по данной теме - ознакомиться с простейшими методами сортировки и приобрести навыки их использования и оценивания их сложности.

Под сортировкой понимают процесс перестановки объектов данного множества в определенном порядке. Цель сортировки - облегчить последующий поиск элементов в отсортированном множестве.

Сортировка простыми включениями

Этот метод обычно заключается в следующем. Элементы условно разделяются на готовую последовательность а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 что и ai < =x < ai +1;

в) если j = j - 1, то переходим к пункту г), иначе расширяем готовую
подпоследовательность справа, сдвигая ее элементы, начиная с ai вправо;

г) ai+1 = x

д) i = i + 1. Если i < =n, то переходим к п.2, иначе сортировка заканчивается..

Таблица 4.1

Начальные ключи   55            
i = 2 44              
i = 3   44            
i = 4         94      
i = 5   42            
i = 6 12              
i = 7             94  
i = 8                

 

Алгоритм сортировки простыми включениями легко можно улучшить, пользуясь тем, что готовая последовательность а2,....аn, в которую нужно включить новый элемент, уже упорядочена. Поэтому место включения можно найти значительно быстрее. Очевидно, что здесь можно применить бинарной поиск, который исследует средний элемент готовой последовательности и продолжает деление пополам, пока не будет найдено место включения. Модифицированный алгоритм сортировки называется сортировкой бинарными включениями.







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.