- •Структура курсового проекта
- •Оформление курсовой работы
- •Исходными данными являются:
- •Выходными данными являются:
- •Перечень тем курсовых проектов
- •Понятие, свойства и способы описания алгоритма
- •Блок-схема и ее элементы
- •Пример оформления теоретической части курсового проекта. Сортировка выбором
- •Быстрая сортировка
- •Сортировка выбором
- •Сортировка пузырьком
- •Сортировка Шелла
- •Сортировки информации методом дешифрации данных
- •Курсовой проект
- •Информации”
- •Содержание
- •Описание переменных и процедур:
- •1. Введение
- •2. Теоретическая часть
- •2.1. Сортировка путем вставок
- •2.2. Метод бинарного поиска
- •3.5. Описание алгоритма задания элементов массива
- •Описание алгоритма поиска заданного образца
- •3.6. Текст программы, выполняющей сортировку массива символов способом простых вставок
- •3 1. 5. 6. .7. Описание интерфейса программы:
- •3.9. Графики зависимостей времени и скорости от количества чисел
- •4. Заключение
- •5. Список используемых источников
Описание переменных и процедур:
i, j, l, contr, elements – целые числа; mas1 – целочисленные массивы; k, f - тип Boolean;
mas2, mas3, mas4 – массивы строк; T1, T2 – переменные типа TDateTime.
Button1.Click – процедура подготовки и заполнение массива случайными числами.
Button2.Click – процедура сортировки массива методом простых вставок.
Button3.Click – процедура подготовки, заполнение массива случайными числами, процедура сортировки массива методом простых вставок с фиксацией времени сортировки и вывода времени сортировки каждого элемента.
Button4.Click – процедура вывода времени сортировки каждого десятого элемента.
Button5.Click – процедура вывода времени сортировки каждого сотого элемента.
Button6.Click – процедура поиска заданного образца в упорядоченном массиве методом бинарного поиска.
Объем раздела составляет 1 полную печатную страницу.
1. Введение
В XXI веке, как никогда, встала проблема хранения, перемещения, защиты информации, а для этого информацию нужно правильно расположить, т. е. отсортировать в порядке убывания или возрастания. Не одна большая программа не обходится без сортировщика слов, чисел, списков. В таких программах сортировщик должен работать быстро эффективно и без сбоев.
Современные вычислительные системы работают наиболее эффективно при упорядоченных данных. Сортировка информации — это процесс расстановки элементов в некотором порядке. Элементы размещаются следующем образом:
1) вычисления, которые требуют определенного порядка расположения данных, упорядоченных по возрастанию или убыванию, могли выполняться эффективно,
2) результаты имели осмысленный вид,
3) последующие операции имели бы упорядоченные исходные данные.
Объем раздела составляет 1 полную печатную страницу.
2. Теоретическая часть
2.1. Сортировка путем вставок
Один из простейших способов отсортировать массив - сортировка вставками.
Этот способ предполагает, что перед рассмотрением записи rj предыдущие записи R1,..., Rj-1 уже упорядочены и rj вставляется в соответствующее место. Приняв эту схему в качестве базовой, можно построить несколько любопытных ее модификаций.
Метод простых вставок. Простейший метод сортировки посредством вставок можно считать наиболее очевидным. Пусть 1 < j < N к записи Rj,...,Rj-1 уже размещены так, что (через Kt обозначается ключ записи Rj). Будем сравнивать по очереди Kj с Kj-1, Kj-2 ... до тех пор, пока не обнаружим, что запись Rj следует вставить между Ri и Ri+1, тогда подвинем записи Ri+1 и на одну позицию вверх и поместим новую запись в позицию i + 1. Удобно совмещать операции сравнение и перемещения, перемещая их между собой, как продемонстрировало в следующем алгоритме; поскольку запись Rj как бы "погружается" на положенный ей уровень, этот способ часто называют просеиванием или погружением (рис. 1).
Рис. 1. Алгоритм S: сортировка методом простых вставок.
Алгоритм S (Сортировка методам простых вставок). Записи R1, …, RN переразмещаются на том же месте. После завершения сортировки их ключи будут упорядочены: K1<=…<= KN.
S1. [Цикл по j.] Выполнить шаги от S2 до S5 при i = 2,3,...Т и после этого завершить выполнение процедуры.
S3. [Установка i, К, R] Присвоить I ß j - 1, Kß Kj, Rß Rj. (На последующих шагах будет предпринята попытка вставить запись R в нужное место, сравнивая К с Kj ( при убывающих значениях i.)
S3. [Сравнение К: К(] Если К > Kj , то перейти к шагу S5 (Мы нашли искомое место для записи R.)
S4. [Перемещение Rj, уменьшение i.) Присвоить Ri+1ß Rj , i ß i - 1. Еcли i > 0, то вернуться к шагу S3. (Еcли i=0, то К — наименьший из рассмотренных до сих пор ключей, а значит, запись R должна занять первую позицию.)
S5. (Перенос R на место Ri+1) Присвоить Ri+1ß R
В табл. 1 показан процесс выполнения алгоритма S на множестве из шестнадцати чисел, которые используются для примеров в этом разделе. Данный метод чрезвычайно просто реализуется программно.
Время выполнения этой программы равно 9B+10N—ЗА—9 машинных циклов, где N — число сортируемых запасен, А — число случаев, когда на шаге S4 значение i убывает до 0, а В — количество перемещений записей. Ясно, что А равно числу случаев, когда Kj < min{K1,... ,K j-i) при 1 < j < N, т. e. это число левосторонних минимумов. Нетрудно прийти к выводу, что В тоже известно: число перемещения записей при фиксированном j равно числу инверсий ключа Kj, так что В равно числу инверсий перестановки К1, К2,...KN. Следовательно,
Схематически метод сортировки простыми вставками можно схематически изобразить следующим образом. На рис.2 (a) мы вынимаем элемент 3. Затем элементы, расположенные выше, сдвигаем вниз - до тех пор, пока не найдем место, куда нужно вставить 3. Это процесс продолжается на рис.2(b) для числа 1. Наконец, на рис.2(c) мы завершаем сортировку, поместив 2 на нужное место.
Если длина нашего массива равна n, нам нужно пройтись по n - 1 элементам. Каждый раз нам может понадобиться сдвинуть n - 1 других элементов, получая алгоритм с временем работы O(n2).
Сортировка вставками относится к числу методов сортировки по месту. Ей не требуется вспомогательная память, сортировка элементов массива осуществляется, используя только память, занимаемую самим массивом. Кроме того, она является устойчивой - если среди сортируемых ключей имеются одинаковые, после сортировки они остаются в исходном порядке.
Рис. 2 Сортировка вставками