Сортировка выбором ( прямой
выбор,линейный выбор )
Согласно этому методу,начиная с первой записи
таблицы, осуществляется поиск элемента,имеющего
наименьшее значение ключа. После того,
как этот элемент найден, он меняется местами с
первой записью в таблице. В результате такой
перестановки запись с наименьшим значением
ключа помещается в первую позицию в таблице.
Затем, начиная со второго элемента таблицы,
осуществляется поиск второго наименьшего ключа.
Найденный элемент меняется местами со вторым
элементом таблицы. Этот процесс продолжается до
тех пор, пока все записи не будут расположены в
порядке возрастания кодов ключа. Число сравнений
в данном методе равно n(n-1)/2 (в среднем порядка n**2),где
n - количество записей в таблице. Максимальное
количество перестановок при такой сортировке
равно (n-1). В качестве примера рассмотрим шаги
алгоритма для таблицы со следующими значениями
ключей:
23 11 4
56 9 35 7
Таблица на различных этапах упорядочения (подчеркнуты
перемещаемые элементы) :
При упорядочении таблицы этим методом
необходима память для хранения исходной и
упорядоченной таблиц,а также дополнительно
должна быть выделена память под счетчик для
каждой записи таблицы.
Просмотр таблицы начинается с первой записи. Ее
ключ сравнивается с ключами последующих записей.При
этом счетчик большего из сравниваемых ключей
увеличивается на 1. При втором просмотре таблицы
первый ключ уже не рассматривается,второй ключ
сравнивается со всеми последующими.Результаты
сравнений фиксируются в счетчиках. Для таблицы,содержащей
n элементов,этот процесс повторяется n-1 раз.
После выполнения всех просмотров счетчик
каждого элемента указывает, какое количество
ключей таблицы меньше ключа этого элемента.Эти
счетчики используются затем в качестве индексов
элементов результирующей таблицы. Поместив
записи в результирующую таблицу в соответствии
со значениями их счетчиков ,получим
упорядоченную таблицу. Выполняется n-1 просмотров
с n/2 сравнениями в среднем при
каждом просмотре.Значения счетчиков
изменяются столько раз,сколько выполняется
сравнений.
Число пересылок равно n.
Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!