Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Методы вставки. Алгоритм простых вставок.Стр 1 из 4Следующая ⇒
Билет №5. Метод вставок.
Метод вставки Метод основывается на следующем: считается, что перед рассмотрением записи R[j] предыдущие записи R[1], R[2],..., R[j-1] уже упорядочены, и R[j] вставляется в соответствующее место. Сортировка таблицы начинается со второй записи. Ее ключ сравнивается с ключом первой записи, и, если упорядоченность 5 8 10 14 6 2 11 ¦ j=5, i=4, 6 < 14 Количество операций сравнения для метода вставки определяется по формуле n * (n - 1)
Метод прямого включения можно улучшить, если вставлять очередной элемент таблицы в упорядоченную подтаблицу с помощью метода бинарного (дихотомического, двоичного, логарифмического) поиска. Методы вставки. Алгоритм простых вставок. {сортировка вставкой} procedure Inser(var item: DataArray; count: integer); var i, l: integer; x: DataItem; begin for i: = 2 to count do begin x: = item[i]; j: = i-1; while (x< item[j]) and (j> 0) do begin item[j+1]: = item[j]; j: = j-1; end; item[j+1]: = x; end; end;Ниже описан основной алгоритм простых вставок, который порождает несколько модификаций, используемых в заданиях. Алгоритм использует прием, которым пользуются игроки в карты при сортировке только что розданной колоды: очередная карта вставляется между уже упорядоченными ранее. Описание алгоритма простых вставок. Файл, подлежащий сортировке, в общем случае состоит из элементов-записей, включающих информационную часть и ключи, по которым производится упорядочение по возрастанию. Поскольку информационная часть почти не влияет на процесс сортировки, будем предполагать, что файлы, используемые в примерах, состоит только из элементов-ключей, а информационная часть записи отсутствует. Здесь k[1], k[2],..., k[N] - ключи, по которым производится упорядочение файла. X, i, j - рабочие переменные. Для примера возьмем файл, состоящий из 8 элементов: j=3: 87 503 °512 X=512
|