Проблема упорядочивания данных с практической точки зрения: достоинства и недостатки пяти различных методов сортировки.
Сортировка применяется во всех без исключения областях программирования, будь то базы данных или математические программы.
Практически каждый алгоритм сортировки можно разбить на три части:
- сравнение, определяющее упорядоченность пары элементов;
- перестановку, меняющую местами пару элементов;
- собственно сортирующий алгоритм, который осуществляет сравнение и перестановку элементов до тех пор, сока все элементы множества не будут упорядочены.
Подобными свойствами обладают и те пять алгоритмов сортировки, которые
рассмотрены ниже. Они отобраны из множества алгоритмов, потому что,
во-первых, наиболее часто используются, а во-вторых, потому что большинство остальных алгоритмов является различными модификациями описанных здесь.
Метод пузырька.
( метод назван также обменной сортировкой с выбором) .
Идея этого метода отражена в его названии. Самые легкие элементы массива "всплывают" наверх, самые "тяжелые" - тонут. Алгоритмически это можно реализовать следующим образом. Мы будем просматривать весь массив "снизу вверх" и менять стоящие рядом элементы в там случае, если "нижний" элемент меньше, чем "верхний". Таким образом, мы вытолкнем наверх самый "легкий” элемент всего массива. Теперь повторим всю оперно для оставшихся неотсортироваными N-1 элементов (т.е. для тех, которые лежат "ниже" первого. Как видно, алгоритм достаточно прост, но, как иногда замечают, он является непревзойденным в своей неэффективности. Немного более эффективным, но таким наглядным является второй метод.
Сортировка выбором
На этот раз при просмотре мaccива мы будем искать наименьший элемент, Сравнивая его с первым. Если такой элемент найден, поменяем его местами с первым. Затем повторим эту операцию, но начнем не с первого элемента, а со второго. И будем продолжать подобным образом, пока не рассортируем весь массив.
Метод Шелла
Этот метод был предложен автором Donald Lewis Shеll в 1959 г. Основная идея этого алгоритма заключается в том, чтобы в начале ycтpанить массовый беспорядок в массиве, сравнивая далеко стоящие друг от друга элементы. Как видно, интервал между сравниваемыми элементами (gap) постепенно уменьшается до единицы. Это означает, что на поздних стадиях сортировка сводится просто к перестановкам соседних элементов (если, конечно, такие перестановки являются необходимыми).
Метод Хoopа
Этот метод, называемый также быстрой сортировкой(QuickSort), был Разработан в 1962 г. (его разработал Charles Antony Richard Hoare).
Суть метода заключается в том, чтобы найти такой элемент множества, подлежащего сортировке, который разобьет его на два подмножества: те элементы, что меньше делящего элемента, и те, что не меньше его. Эту идею можно реализовать многими способами.
Другие работы по теме:
Автоматизированния система обучения программированию
Актуальной проблемой совершенствования учебного процесса является разработка программного обеспечения для его проведения. Очевидным пробелом является почти полное отсутствие средств обучения основам программирования.
Кан, Дэвид
Дэвид Кан (англ. David Kahn) — американский историк, писатель и криптограф, автор фундаментального[1] труда по истории криптографии «Взломщики кодов», консультант Конгресса США по вопросам криптографии[2].
Лейзерсон, Чарльз Эрик
Чарльз Эрик Лейзерсон — профессор, американский специалист в области компьютерных наук, информатики. Специализируется на теории параллельных и распределённых вычислений и частично — практическим её применениям. Работая в этом направлении, разработал язык программирования Cilk для многопотоковых вычислений, который использует один из лучших алгоритмов захвата задачи (англ. work-stealing) при планировании.
Шнайер, Брюс
Брюс Шнайер (Bruce Schneier; род. 15 января 1963, Нью-Йорк) — американский криптограф, писатель и специалист по компьютерной безопасности. Президент и основатель криптографической компании Counterpane Systems, член совета директоров Международной ассоциации криптологических исследований и член консультативного совета Информационного центра электронной приватности.
Особенности работы с Microsoft Access
Обзор Microsoft Access, элементы базы данных в различных режимах. Создание простой таблицы. Типы и свойства полей. Установление первичного ключа. Способы удаления и переименования таблиц. Возможности записей с помощью фильтров. Запрос на выборку.
Моделирование информацийных потоков
Сортировка вставками. Обменная сортировка. Сортировка посредством выбора. Сортировка подсчетом. Специальная сортировка. Сортировка Бетчера. Структура, задачи и формализация предметной области. Исчисление предикатов.
Работа с базами данных
Изучение работы с реляционной СУБД "Access", основные этапы проектирования базы данных: создание таблицы в режиме конструктора, заполнение ее данными, проектирование связей между ними. Создание форм и запросов, выбор сортировки, заполнение отчетов.
Элементарные методы сортировки
Сущность и порядок реализации простых методов сортировки при составлении программного алгоритма, их классификация и разновидности, отличительные признаки, характерные свойства. Особенности алгоритмов для сортировки файлов записей, содержащих ключи.
Алгоритмы и организация данных
Программа последовательного поиска в последовательном неотсортированном массиве реквизитов единственного значения. Алгоритм сортировки простым выбором. Программа индексирования основного файла по одному реквизиту. Индексные файлы по реквизитам.
Алгоритмические языки: обработка одномерных массивов
Работа с массивами, их ввод и вывод, организация программ циклической структуры. Способы описания и использования массивов, алгоритмы их сортировки, сортировка выбором и вставками. Алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.
Сортировка массива методом Шелла
Отчёт по практике Выполнили: cт.гр. 97ЭЭ3 Толмач М., Ерегин П., Синева Т. Пензенский государственный университет, Кафедра "Экономическая кибернетика"
Сортировка данных в массиве
В этом разделе будет рассмотрен знаменитый алгоритм ''быстрой'' сортировки, по праву считающийся самым быстрым среди неспециализированных алгоритмов сортировки. Для сравнения мы также рассмотрим один из алгоритмов сортировки, имеющих более низкую эффективность, но и более простых алгоритмов – сортировку вставками.
Тесты по Информатике 2
Тест по информатике Алгоритмы: виды, свойства 9 класс по учебнику Угриновича Н.Д. Алгоритм-это: Указание на выполнение действий, Система правил, описывающая последовательность действий, которые необходимо выполнить для решения задачи,
Операционные узлы ЭВМ
1. Линейные алгоритмы Составить программу вычисления объема цилиндра и конуса, которые имеют одинаковую высоту Н и одинаковый радиус основания R. 2. Ветвящиеся алгоритмы – I раздел
Циклические алгоритмы
Циклические алгоритмы Алгоритмы содержащие команды повторения, называют циклическими. Команды повторения составляют цикл. Цикл - это такая форма организации действий, при которой одна последовательность действий повторяется несколько раз( или не разу), до тех пор , пока выполняются некоторые условия.
Особенности работы с Microsoft Access 2
Министерство образования и науки Украины Донбасская государственная машиностроительная академия Кафедра КИТ Контрольная работа по дисциплине "Технические средства коммуникаций"
Место УСО в АСУ процесса бурения
Одно из главных различий между системами обработки данных и АСУ ТП состоит в том, что последняя должна быть способна в реальном времени получать информацию о состоянии объекта управления, реагировать на эту информацию.
Барабанная сортировка картофеля для фермерских хозяйств
Барабанная сортировка картофеля для фермерских хозяйств В настоящее время около 90 % картофеля в России производится в крестьянских (фермерских) хозяйствах по обычной технологии с применением простейших средств механизации. Поэтому актуальной проблемой становится оснащение этих хозяйств малогабаритной техникой, в частности для сортирования картофеля.