рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Сортировка бинарными включениями - раздел Информатика, Оглавление Сортировка И Поиск Информации. 1 Методы Внутренн...

Оглавление

Сортировка и поиск информации. 1

Методы внутренней сортировки. 1

Сортировки включением.. 1

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

Сортировка бинарными включениями. 2

Сортировка выбором.. 2

Прямой выбор. 2

Обменные сортировки. 3

Сортировка прямого обмена (пузырьковая). 3

Шейкерная сортировка. 3

Пирамидальная сортировка. 3

Обменная сортировка разделением (быстрая сортировка). 4

Контрольные вопросы.. 4

 

Комбинированный урок №13

Тема:Сортировка и поиск информации. Методы внутренней сортировки

Цель: изучить методы внутренней сортировки такие как.

Сортировка и поиск информации

Почему так устроена человеческая натура? Оказывается потому, что поиск в упорядоченном массиве значительно эффективнее! Ведь в природе зачастую… Используя структурированный тип Record, создаются массивы записей всевозможных… При этом алгоритмами решения этих задач являются «поиск» и «сортировка», которые существенно зависят от того,…

Begin

For i:=2 To n Do

Begin

x:=a[i];r:=a[i]; a[0]:=x; j:=i;

While x<a[j-1] Do

Begin a[j]:=a[j-1]; j:=j-1; end;

a[j]:=r

End;

End;{Straight_Insertion}{сортировка прямым включением}

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

Алгоритм сортировки прямыми включениями можно легко улучшить, пользуясь тем, что готовая последовательность a[1],...,a[i-1], в которую нужно включить новый элемент, уже упорядочена. Поэтому место включения можно найти значительно быстрее, применив бинарный поиск, который исследует средний элемент готовой последовательности и продолжает деление пополам, пока не будет найдено место включения. Модифицированный алгоритм сортировки называется сортировкой бинарными включениями.

Procedure Binary_Insertion(n:word;Var a: array[1..100] of integer);

Var i,j,l,r,m:word;

x:integer;

Begin

For i:=2 To n Do

Begin

x:=a[i]; l:=1; r:=i-1;

While l<=r Do

Begin

m:=(l+r) div 2;

If x < a[m] Then r:=m-1

Else l:=m+1

End;

For j:=i-1 DownTo l Do a[j+1]:=a[j];

a[l]:=x

End;

End;{Binary_Insertion}{сортировка бинарным вкючением}

Сортировка выбором

Прямой выбор.

Для i=1..n-1 выполняется следующий элементарный алгоритм: среди элементов ai..n выбираем минимальный am и переставляем местами элементы i-й и m-й. В результате на первое место станет самый минимальный, на второе – следующий минимальный и т.д.

Procedure Straight_Selection(n:word;Var a array[1..100] of integer);

Var i,j,k:word;

x:integer;

Begin

For i:=1 To n-1 Do

Begin

m:=i;

For j:=i+1 To n Do

If a[m] > a[j] Then m:=j;

x:=a[i]; a[i]:=a[m]; a[m]:=x

End

End;{Straight_Selection} {сортировка простым выбором}

Обменные сортировки

Сортировка прямого обмена (пузырьковая).

Это метод, в котором обмен двух элементов является основной характеристикой процесса. Алгоритм сортировки простым обменом основан на принципе сравнения и обмена пары соседних элементов до тех пор, пока не будут рассортированы все элементы. Для i=1..n-1 выполняется следующий элементарный алгоритм: начиная от n до i последовательно проверяем упорядоченность двух соседних элементов a[j] и a[j-1], и если они не упорядочены, то меняем их местами. В результате такого обмена минимальный элемент перемещается на место i.

Критерием окончания является отсутствие обменов при очередном проходе.

Во всех процедурах сортировки ключи упорядочиваются по возрастанию. На входе процедур - количество элементов массива (n), на выходе - упорядоченный массив элементов (а).

Procedure Bubble_Sort(n:word;Var a: array[1..100] of integer);

Var i,j:word;

x:integer;

Begin

For i:=1 To n-1 Do

Begin

For j:=n DownTo i Do

If a[j-1]>a[j] Then

Begin

x:=a[j-1]; a[j-1]:=a[j]; a[j]:=x

End

End

End;{Bubble_Sort}

Шейкерная сортировка.

Улучшение алгоритма - это запоминать, производится ли на данном проходе какой-либо обмен. Если нет, то это означает, что алгоритм может закончить работу. Этот процесс улучшения можно продолжить, если запомнить не только сам факт обмена, но и место (индекс) последнего обмена.

Однако внимательный программист заметит здесь странную асимметрию: один неправильно расположенный "пузырек" в "тяжелом" конце рассортированного массива всплывет на место за один проход, а неправильно расположенный элемент в "легком" конце будет опускаться на правильное место только на один шаг на каждом проходе. Изменение направления сортировки в каждом из проходов алгоритма поиска называют шейкерной сортировкой.

Для того чтобы тяжелые элементы сразу попадали вниз, пузырьковую сортировку выполняют так, чтобы направление прохода было снизу вверх, следующий проход - сверху вниз и так далее.

Procedure Shaker_Sort(n:word;Var a:array [1..100] of integer);

Var j,k,l,r:word;

x:integer;

Begin

l:=2; r:=n; k:=n;

Repeat

For j:=r DownTo l Do {проход снизу-вверх}

If a[j-1]>a[j] Then

Begin

x:=a[j-1]; a[j-1]:=a[j]; a[j]:=x; k:=j;

End;

l:=k+1;

For j:=l To r Do {проход cверху-вниз}

If a[j-1]>a[j] Then

Begin

x:=a[j-1]; a[j-1]:=a[j]; a[j]:=x; k:=j;

End;

r:=k-1;

Until l>r

End;{Shaker_Sort}

Пирамидальная сортировка.

Предположим, что дана пирамида с элементами hl+1, ..., hr для некоторых значений l и r и нужно добавить новый элемент x для того, чтобы сформировать расширенную пирамиду hl, ..., hr. Новый элемент x сначала помещается в вершину дерева, а затем “просеивается” по пути, на котором находятся меньшие по сравнению с ним элементы, которые одновременно поднимаются вверх; таким образом, формируется новая пирамида.

В процедуре Heap_Sort вызывается процедура Sift, которая реализует алгоритм формирования пирамиды.

Procedure Heap_Sort(n:word;Var a: array [1..100] of integer);

Var l,r:word;x:integer;

Procedure Sift;

Label 13;

Var i,j:word;

Begin

i:=l; j:=2*i; x:=a[i];

While j<=r Do

Begin

If j<r Then

If a[j]<a[j+1] Then j:=j+1;

If x>=a[j] Then Goto 13;

a[i]:=a[j]; i:=j; j:=2*i;

End;

13: a[i]:=x

End;{Sift}

BEGIN

l:=(n div 2)+1; r:=n;

While l>1 Do

Begin

l:=l-1; Sift

End;

While r>1 Do

Begin

x:=a[1]; a[1]:=a[r]; a[r]:=x;

r:=r-1; Sift

End

END;{Heap_Sort}

Обменная сортировка разделением (быстрая сортировка).

Выбирается любой произвольный элемент массива, далее массив просматривается слева направо до тех пор пока не будет найден элемент больший выбранного; а затем просмотрим его справа налево, пока не найдем элемент меньший выбранного. Найденные элементы поменяем местами. Затем продолжим процесс “просмотра с обменом”, пока два просмотра не встретятся где-то в середине массива. В результате массив разделится на две части: левую - с ключами меньшими выбранного элемента; и правую - с большими ключами. Описанный алгоритм применяется к обоим этим частям, в результате чего последовательность разбивается на 4 части. Алгоритм применяется к каждой четвертинке и т.д. Разделение заканчивается, когда в каждой части остается 1 элемент.

В процедуре Quick_Sort вызывается процедура Sort, которая реализует алгоритм разделения и обмена для одной части массива.

Procedure Quick_Sort(n:word;Var a:massiv);

Procedure Sort(l,r:word);

Var w,x:integer;

i,j:word;

Begin

i:=l; j:=r;

x:=a[(l+r) div 2];

Repeat

While a[i]<x Do i:=i+1;

While a[j]>x Do j:=j-1;

If i<=j Then

Begin

w:=a[i]; a[i]:=a[j]; a[j]:=w;

i:=i+1; j:=j-1

End

Until i>j;

If l<j Then Sort(l,j);

If i<r Then Sort(i,r);

End;{Sort}

BEGIN

Sort(1,n);

END;{Quick_Sort}

 

Контрольные вопросы

  1. Дайте определение понятиям «поиск» и «сортировка».
  2. Что такое ключ и основные требования к нему?
  3. Назовите принципы действия сортировки включением. Приведите примеры.
  4. Назовите принципы действия сортировки выбором.
  5. Назовите принципы действия обменной сортировки. Приведите примеры.

– Конец работы –

Используемые теги: Сортировка, бинарными, включениями0.062

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Сортировка бинарными включениями

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Сравнение эффективности методов сортировки массивов: Метод прямого выбора и метод сортировки с помощью дерева
При прямом включении на каждом шаге рассматриваются только один очередной элемент исходной последовательности и все элементы готовой… Полностью алгоритм прямого выбора приводится в прогр. 3. Таблица 2. Пример… Можно сказать, что в этом смысле поведение этого метода менее естественно, чем поведение прямого включения.Для С имеем…

Сортировка, пирамидальная сортировка. Параметры задачи: размер последовательности, длина строки. Мера сравнения: число обменов, число сравнений, Время выполнения.
Сортировка пирамидальная сортировка Параметры задачи размер... последовательности длина строки Мера сравнения число обменов число... Время выполнения Пирамидальная сортировка Пирамидальная...

классификация и сортировка пушно-мехового полуфабриката 3

Классификация и сортировка пушно-мехового полуфабриката 2

Классификация и сортировка пушно-мехового полуфабриката
Классификация пушно-мехового полуфабриката слож­на, причем классификация пушно-мехового полуфабри­ката и классификация меховых шкурок морского зверя… Классификация, представленная в Общероссийском класси­фикаторе, носящая… К наивысшей категории—классу—отнесены все пушно-меховые полуфабрикаты. Классы подразделены на три подкласса:…

Классификация и сортировка пушно-мехового полуфабриката 1

Использование электронной таблицы как базы данных. Сортировка и фильтрация данных в Microsoft Excel 97
Существуют ограничения, накладываемые на структуру базы данных: • первый ряд базы данных должен содержать неповторяющиеся имена полей; • остальные… Сортировка - это упорядочение данных по возрастанию или по убыванию. Проще… Это средство отображает подмножество данных, не перемещая и не сортируя данные. При фильтрации базы отображаются…

Бинарные отношения
Так как бинарные отношения являются множествами то к ним применимы все понятия которые вводятся для множеств понятие равенства включения а... Пусть a и b два бинарных отношения на множестве X Каждому из них... Определение Пересечением отношений a и b заданных на множестве X называется отношение такое что...

Программирование алгоритмов сортировки массивов
Государственное образовательное учреждение... Высшего профессионального образования... Санкт Петербургский государственный университет...

Бинарные отношения
На сайте allrefs.net читайте: "Бинарные отношения"

0.05
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам
  • РЕКТИФИКАЦИОННАЯ УСТАНОВКА НЕПРЕРЫВНОГО ДЕЙСТВИЯ ДЛЯ РАЗДЕЛЕНИЯ 4,1 т/ч БИНАРНОЙ СМЕСИ АЦЕТОН - ЭТАНОЛ Поэтому методы подход к расчету и проектированию ректификационных и абсорбционных установок имею много общего.Тем не менее ряд особенностей… Одна из сложностей заключается в отсутствии обобщенных закономерностей для… Принципиальная схема ректификационной установки представлена на рис. 1. Исходную смесь из промежуточной емкости 1…
  • СРАВНЕНИЕ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ СОРТИРОВКИ В первой программе описана сортировка методом вставок, во второй пузырьковая сортировка. Для того чтобы выяснить, какая сортировка эффективнее,… ОПИСАНИЕ РЕШЕНИЯ ЗАДАЧИ СОРТИРОВКА ВСТАВКАМИ Сортировка вставками элементов… В худшем случае потребуется n n-1 2 таких сравнений, то есть сложность сортировки вставками -…
  • Алгоритмы сортировки Подобными свойствамиобладают и те пять алгоритмов сортировки, которыерассмотрены ниже. Они отобраны из множества алгоритмов,потому что, во-первых,… Алгоритмически это можно реализоватьследующим образом. Мы будем просматривать… Немного более эффективным, нотаким наглядным является второй метод.Сортировка выбором На этот раз припросмотре мaccива…
  • Сортировка Затем, несколько раз выполняется операция склеиваниеодно выполнение операции склеивание мы будем незывать шаг, т.е два исходных файла, в которых… Этот кусок записывается в первый выходной файл если исходные куски имели… Схема программы предельно проста сначала выполняется первоначльная сортировкапроцедура firstsort, затем вызываем…
  • Механизация и автоматизация работ по контролю и сортировке деталей Поворотная рама 7 имеет возможность поворачиваться на 270° в обе стороны от среднего положения с фиксацией через 30°. На поворотной раме имеется… В верхней части поворотной рамы размещены гидроцилиндры 3 прижимного… Рабочая жидкость — вода — подается в испытуемое изделие ручным насосом 6. Прижимные гидроцилиндры 3 развивают рабочее…