Алгоритмы сортировки

Автор работы: Пользователь скрыл имя, 16 Марта 2012 в 23:49, курсовая работа

Описание

В работе рассмотрены основные параметры оценки алгоритмов сортировки, наиболее известные методы сортировки, а в практической части на основе экономической задачи представлено, как удобно с помощью Microsoft Excel выполнить расчеты, проанализировать полученные числовые данные, а также представить результаты в графическом виде.

Содержание

ВВЕДЕНИЕ 3
Глава 1 АЛГОРИТМЫ СОРТИРОВКИ 5
1.1 ОБЩАЯ ХАРАКТЕРИСТИКА АЛГОРИТМОВ СОРТИРОВКИ 5
1.2 ОСНОВНЫЕ ВИДЫ СОРТИРОВОК 7
1.2.1 Сортировка пузырьком 7
1.2.2 Сортировка перемешиванием 7
1.2.3 Сортировка методом вставок 7
1.2.4 Сортировка подсчетом 8
1.2.5 Сортировка слиянием 8
1.2.6 Сортировка методом выбора 9
1.2.7 Сортировка методом Шелла 9
1.2.8 Метод Хoopа 10
1.2.9 Цифровая сортировка 10
1.2.10 Поразрядная сортировка 11
1.2.11 Быстрая сортировка 11
Глава 2 ПРАКТИЧЕСКАЯ ЧАСТЬ 13
2.1 Общая характеристика задачи 13
2.2 Алгоритм решения задачи 14
ЗАКЛЮЧЕНИЕ 19
СПИСОК ЛИТЕРАТУРЫ 21

Работа состоит из  1 файл

курсовик информатика.doc

— 290.00 Кб (Скачать документ)

Алгоритм цифровой сортировки действует следующим образом:

1.                       Создаём массив изначально пустых «ячеек», по одной для каждой величины из диапазона ключей.

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

3.                       Проходим по массиву ячеек в нужном порядке и переносим элементы из непустых ячеек обратно в первоначальный массив.

Эффективность этого алгоритма сильно зависит от плотности элементов в массиве ячеек. Если элементов этого массива намного больше, чем сортируемых предметов, то шаги 1 и 3 будут относительно медленными. Сортировку подсчётом применяют редко, потому что её требования редко удовлетворяются, и часто бывает проще применить другие, более гибкие и почти такие же быстрые алгоритмы сортировки. В особенности, блочная сортировка является более практичным вариантом сортировки подсчётом. В некотором роде, быстрая сортировка представляет собой обобщённую сортировку подсчётом (всего с двумя ячейками в каждый момент времени).

1.2.10 Поразрядная сортировка

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

1.2.11 Быстрая сортировка

Быстрая сортировка (англ. quicksort) — широко известный алгоритм сортировки, разработанный английским информатиком Чарльзом Хоаром. Даёт в среднем O(n log n) сравнений при сортировке n элементов. В худшем случае, однако, получается O(n2) сравнений. Обычно на практике быстрая сортировка значительно быстрее, чем другие алгоритмы с оценкой O(n log n), по причине того, что внутренний цикл алгоритма может быть эффективно реализован почти на любой архитектуре, и на большинстве реальных данных можно найти решения, которые минимизируют вероятность того, что понадобится квадратичное время.

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

Алгоритм:

Быстрая сортировка использует стратегию «разделяй и властвуй». Шаги алгоритма таковы:

1.                 Выбираем в массиве некоторый элемент, который будем называть опорным элементом.

2.                 Операция разделения массива: реорганизуем массив таким образом, чтобы все элементы, меньшие или равные опорному элементу, оказались слева от него, а все элементы, большие опорного — справа от него.

3.                 Рекурсивно сортируем подсписки, лежащие слева и справа от опорного элемента.

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

При выборе опорного элемента из данного диапазона случайным образом, худший случай становится очень маловероятным и ожидаемое время выполнения алгоритма сортировки - O(n log n).

 

 

 

 

Глава 2 ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1 Общая характеристика задачи

 

ВАРИАНТ 19

1.Произвести расчет платежа по кредиту клиента банка (рис. 2.1). Ежемесячное погашение кредита осуществляется равными (аннуитетными) платежами.

Погашение основного долга определяется как отношение суммы кредита к количеству месяцев, на которые выдан кредит. Результаты округлить до целого, используя функцию ОКРУГЛ().

Сумма процентов определяется как произведение суммы текущего остатка по кредиту на процентную ставку в месяц. Процентная ставка в месяц равна отношению процентной ставки кредита к количеству месяцев, на который выдан кредит.

Сумма текущего остатка по кредиту определяется как разница между суммой предыдущего остатка по кредиту и текущей суммы погашения основного долга.

Платеж по кредиту определяется как сумма текущей суммы процента по кредиту и текущей суммы погашения основного долга.

2.Результаты округлить до целого, используя функцию ОКРУГЛ(). Для того, чтобы итоговая сумма погашения основного долга равнялась сумме выданного кредита, использовать функцию ЕСЛИ() для отражения остатков по платежу в последнем платеже.  Сумма последнего платежа по погашению основного долга будет больше, чем платежи за предыдущие месяцы.

По данным таблицы (рис. 2.1) построить гистограмму с отражением платежей по кредиту по месяцам.

 

 

 

Платежи по кредиту клиента _______________ банка "Акцепт" за 2006 г.

Годовая процентная ставка

16%

 

 

 

Кредит выдан на

12

месяцев

 

 

Сумма кредита, руб.

175 000

 

 

 

Номер
платежа

Дата
платежа

Текущий остаток по кредиту, руб.

Сумма процентов, руб.

Погашение основного
долга, руб.

Платеж по кредиту, руб.

1

Январь 2006

 

 

 

 

2

Февраль 2006

 

 

 

 

3

Март 2006

 

 

 

 

4

Апрель 2006

 

 

 

 

5

Май 2006

 

 

 

 

6

Июнь 2006

 

 

 

 

7

Июль 2006

 

 

 

 

8

Август 2006

 

 

 

 

9

Сентябрь 2006

 

 

 

 

10

Октябрь 2006

 

 

 

 

11

Ноябрь 2006

 

 

 

 

12

Декабрь 2006

 

 

 

 

Итого

 

 

 

 

 

Рис. 2.1. Платежи по кредиту клиента банка «Акцепт»

 

2.2 Алгоритм решения задачи

 

1.      Запустить табличный процессор MS Excel.

2.      Создать книгу с именем «Кредит в Банке».

3.      Лист 1 переименовать в лист с названием «Платежи».

4.      На рабочем листе «Платежи» MS Excel создать таблицу с базовыми данными  о платежах по кредиту клиента банка «Акцепт» за 2006 г.

Заполнить таблицу  с базовыми данными  о платежах по кредиту клиента банка «Акцепт» за 2006 г. ( рис.1)

Рис.1 Таблицу  с базовыми данными  о платежах по кредиту клиента банка «Акцепт» за 2006 г.

5.      Рассчитать сумму погашения основного долга и процентную ставку за месяц по формуле:

Сумма погашения = Сумма кредита/Кол-во месяцев, на которые выдан кредит (B5=B3/B2)

Процентная ставка = Годовая ставка/ Кол-во месяцев, на которые выдан кредит (B4=B1/B2)

Рис.2 Результаты были округлены до целого

 

6.      На рабочем листе «Платежи» MS Excel в таблице «Платежи по кредиту клиента банка «Акцепт» за 2006 г.» заполняем таблицу по формулам и округляем результаты до целого числа (рис.4)

Номер платежа

Дата платежа

Текущий остаток по кредиту, руб.

Сумма процентов, руб.

Погашение основного долга, руб.

Платеж по кредиту, руб.

1

Январь 2006

C9=B3

D9=C9*C4

E9=C5

F9=D9+E9

2

Февраль 2006

C10=C9-E10

D10=C10*C4

E10=C5

F10=D10+E10

3

Март 2006

C11=C10-E11

D11=C11*C4

E11=C5

F11=D11+E11

4

Апрель 2006

C12=C11-E12

D12=C12*C4

E12=C5

F12=D12+E12

5

Май 2006

C13=C12-E13

D13=C13*C4

E13=C5

F13=D13+E13

6

Июнь 2006

C14=C13-E14

D14=C14*C4

E14=C5

F14=D14+E14

7

Июль 2006

C15=C14-E15

D15=C15*C4

E15=C5

F15=D15+E15

8

Август 2006

C16=C15-E16

D16=C16*C4

E16=C5

F16=D16+E16

9

Сентябрь 2006

C17=C16-E17

D17=C17*C4

E17=C5

F17=D17+E17

10

Октябрь 2006

C18=C17-E18

D18=C18*C4

E18=C5

F18=D18+E18

11

Ноябрь 2006

C19=C18-E19

D19=C19*C4

E19=C5

F19=D19+E19

12

Декабрь 2006

C20=C19-E20

D20=C20*C4

E20=C5

F20=D20+E20

 

 

 

 

 

 

 

 

 

 

Таким образом, получаем (рис.3)

Рис. 3 Заполненная таблица

Рис. 4 Округленные результаты

7.      По данным таблицы построена гистограмма с отражением платежей по кредиту по месяцам (рис. 5)

 

Рис. 5 Гистограмма с отражением платежей по кредиту по месяцам

 

Построенная гистограмма отображает платежи по кредиту по месяцам, т.е. какую сумму клиент выплачивает банку каждый месяц.

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

Современную жизнь представить без современной техники просто невозможно.

Ни одна фирма не обходится без помощи компьютеров. Хранение данных, написание документов, составление графиков, таблиц, расписаний, создание презентаций - во всем в этом нам помогает компьютер, и помогает успешно.
Сортировка применяется во всех без исключения областях программирования, будь то базы данных или математические программы. Алгоритмы сортировки представляют собой пошаговое упорядочение элементов в определенном массиве данных, независимо от его размеров.

Практически каждый алгоритм сортировки можно разбить на три части:

- сравнение, определяющее упорядоченность пары элементов;

- перестановку, меняющую местами пару элементов;

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

Выбор метода сортировки в значительной мере зависит от объема и характеристики исходных данных. Но, в целом, основными параметрами, которыми руководствуется пользователь при выборе метода сортировки, являются время действия алгоритма, память, устойчивость сортировки и эффективность поведения алгоритма.

В практической части данной курсовой работы решение экономической задачи производилось поэтапно, согласно разработанному алгоритму. Это позволило понять, насколько эффективно использовать программу  MS Excel, если в работе часто используются различного рода таблицы, списки, бланки, при заполнении которых производятся вычисления по формулам. Более того, на основе имеющихся в  MS Excel шаблонов диаграмм, была получена наглядная картина данных таблицы.

Возможность алгоритмизировать свою деятельность всегда была привилегией профессионалов в любой области человеческой деятельности. Современные программные продукты, в том числе и фирмы Microsoft, подразумевают использование языков программирования и программных сред. Именно поэтому, отдельные вопросы программирования, в частности, использование существующих и разработка новых, более эффективных алгоритмов сортировки данных, играют немаловажную роль в развитии современных информационных технологий.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СПИСОК ЛИТЕРАТУРЫ

 

1.                  Информатика: Методические указания по выполнению курсовой работы для самостоятельной работы студентов II курса (первое высшее образование). – М.: Вузовский учебник, 2006.

2.                  Информатика в экономике: Учеб.пособие/Под ред. проф. Б.Е. Одинцова, проф. А.Н. Романова. – М.: Вузовский учебник, 2008.

3.                  Википедия — свободная энциклопедия – www.ru.wikipedia.org

4.                  Леонтьев В. П. Новейшая энциклопедия персонального компьютера 2005. – М.: ОЛМА-ПРЕСС Образование, 2005.

5.                  Михеева Е. В. Практикум по информационным технологиям в профессиональной деятельности: Учебное пособие, 2-е изд., стер. – М.: Издательский центр «Академия», 2006.

6.                  Акулов О.А., Медведев Н.В. Информатика: базовый курс. – М.: Омега-Л, 2008.

21

 



Информация о работе Алгоритмы сортировки