КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Сортировки
Алгоритм сортировки — это алгоритм для упорядочения элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки. Сформулируем задачу сортировки. Вход: последовательность n чисел (a 1; a 2;…; an). Выход: Перестановка (a` 1; a` 2;…; a`n) исходной последовательности, для которой a` 1 ≤ a` 2 ≤…≤ a`n. Например, получив на вход последовательность(21, 43, 37, 18, 32), алгоритм сортировки должен выдавать на выход (18, 21, 32, 37, 43). Свойства и классификация
По сфере применения сортировки делят на следующие группы:
Также алгоритмы классифицируются по:
Рассмотрим основные сортировки: Сортировка выбором (Selection sort). Может быть реализован и как устойчивый и как неустойчивый алгоритм. На массиве из n элементов имеет время выполнения в худшем, среднем и лучшем случае Θ(n 2), предполагая что сравнения делаются за постоянное время. Шаги алгоритма: 1. находим номер минимального значения в текущем списке 2. производим обмен этого значения со значением первой неотсортированной позиции (обмен не нужен, если минимальный элемент уже находится на данной позиции) 3. теперь сортируем хвост списка, исключив из рассмотрения уже отсортированные элементы Так как после каждого прохода по внутреннему циклу делается только один обмен, то общее число обменов равно N-1, что в N/2 раз меньше, чем в сортировке пузырьком. Число проходов по внутреннему циклу равно N-1 даже в случае сортировки частично или полностью отсортированного массива. Наихудший случай: Число сравнений в теле цикла равно (N-1)*N/2. Число сравнений в заголовках циклов (N-1)*N/2. Число сравнений перед операцией обмена N-1. Суммарное число сравнений N2−1. Число обменов N-1. Сортировка простыми обменами, сортиро́вка пузырько́м (bubble sort). Сложность алгоритма: O(n ²). Алгоритм состоит из повторяющихся проходов по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются N-1 раз или до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При каждом проходе алгоритма по внутреннему циклу, очередной наибольший элемент массива ставится на своё место в конце массива рядом с предыдущим наибольшим элементом, а наименьший элемент перемещается на одну позицию к началу массива («всплывает» до нужной позиции как пузырёк в воде, отсюда и название алгоритма). Наихудший случай:
Наилучший случай:
Дата добавления: 2014-01-05; Просмотров: 443; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |