Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
52
Добавлен:
02.05.2014
Размер:
357.89 Кб
Скачать

Бинарные вставки

Алгоритм метода бинарной вставки представляет из себя оптимизированную версию предыдущего, отличие заключается в том, что при поиске место, на которое надо вставить элемент ai в уже упорядоченную совокупность a0 , ..., ai-1 , определяется алгоритмом деления пополам (отсюда и название алгоритма "бинарные вставки" здесь понимается как "вставка делением пополам"). Метод бинарной вставки обеспечивает более высокую скорость сортировки по сравнению с методом простой вставки.

Методы «бинарного поиска» указывают куда вставлять j-й элемент после приблизительно log2j соответствующим образом выбранных сравнений. Например, если вставляется 64-я запись, можно сначала сравнить ключ K64 с K32; затем, если он меньше, сравниваем его с K16, если больше – с K48 и т. д., так что место для R64 будет найдено после всего лишь шести сравнений. Общее число сравнений для N вставляемых элементов равно приблизительно Nlog2N, что существенно лучше, чем N2/4.

Неприятность состоит в том, что бинарные вставки решают задачу только на половину: после того, как мы нашли, куда вставлять запись Rj, все равно нужно подвинуть примерно j/2 ранее отсортированных записей, чтобы освободить место для Rj, так что общее время работы остается, по существу, пропорциональным N2 

Блок-схема метода бинарных вставок

Рисунок1. Блок-схема бинарной вставки

Блок-схема метода простых вставок

Рисунок2. Блок-схема простых вставок

Создание и описание основных форм программы

Программа была создана с помощью интегрированной среды разработки Microsoft Visual Basic 6.0. Приложение имеет главную форму, в которой происходят все действия. Программа была создана с помощью шаблона VBApplicationWizard.

Рисунок3.Главная форма

Далее к проекту через меню Project, Add Form были добавлены следующие формы типа окна диалога

  1. frmDocument. Эта форма уже была создана с помощью шаблона. Она служит для представления информации о программе.

Рисунок4.Форма О проекте

  1. frmSimple. На форме размещены: MSFlexGrid1 – таблица, этот элемент служит для визуализации процесса сортировки (10 элементный массив), количество строк этого элемента установлено 11 (на этапе разработки), столбцов 3.; Text1 – для ввода элемента массива; btAdd – кнопка которая служит для добавления элемента в таблицу; btInsert – кнопка которая служит для применения метода простых вставок;

  2. frmBinar. На форме размещены: MSFlexGrid1 – таблица; Text1 – для ввода элемента массива; btAdd – кнопка которая служит для добавления элемента в таблицу; btBinar – кнопка которая служит для применения метода бинарных вставок. Picture1 – окно для размещения гистограммы, для визуализации метода.

Форма метода бинарных вставок

  1. frmInformation. На форме размещены: Text1 – для вывода информации о методах сортировки; btOk – командная кнопка которая закрывает форму.

  1. frmSchemeSimple. На форме размещен объект Picture1 в котором отображается блок-схема метода простых вставок.

  1. frmSchemeBinar. На форме размещен объект Picture1 в котором отображается блок-схема метода бинарных вставок.

  2. frmGraph. Форма служит для отображения графика зависимости времени сортировки массива от количества элементов. На форме размещены: Picture1 – область для построения графиков; Progress – для отображения отсчета времени; cmdGrafic – для построения графиков зависимости времени от метода сортировки; btOk – кнопка служит для закрытия формы.

В последнюю очередь к проекту был добавлен стандартный модуль Module1 (меню Project, Add Module), в который помещен код процедуры Main. В Модуле1 заданы общие для нескольких форм процедуры.

Соседние файлы в папке Курсовая работа по Visual Basic3