Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Введение. Пожалуй, никакая другая проблема не породила такого количества разнообразнейших решений, как задача сортировки




Пожалуй, никакая другая проблема не породила такого количества разнообразнейших решений, как задача сортировки. К сожалению, нельзя сказать, что существует некий "универсальный", наилучший алгоритм. Однако, имея приблизительные характеристики входных данных, можно подобрать метод, работающий оптимальным образом.

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

1. Время сортировки: основной параметр, характеризующий быстродействие алгоритма.

2. Память: ряд алгоритмов требует выделения дополнительной памяти под временное хранение данных. При оценке используемой памяти не будут учитываться место, которое занимает исходный массив и независящие от входной последовательности затраты, например, на хранение кода программы.

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

  a

 

  q

 

  b

 

  c

 

  z

 

Исходные данные

  a

 

  b

 

  c

 

  z

 

  q

 

Пример работы устойчивой сортировки

Рис. 1

На рис. 1 приведен пример устойчивой работы алгоритма. Взаимное расположение равных элементов с ключом 1 и дополнительными полями "a", "b", "c" осталось прежним: элемент с полем "a", затем - с "b", затем - с "c".

  c

 

  b

 

  a

 

  z

 

  q

 

Пример работы неустойчивой сортировки
Рис. 2

На рис. 2 приведен пример неустойчивой работы алгоритма. Взаимное расположение равных элементов с ключом 1 и дополнительными полями "a", "b", "c" изменилось.

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

В общей постановке задача ставится следующим образом. Пусть есть последовательность a0, a1... an и функция сравнения, которая на любых двух элементах последовательности принимает одно из трех значений: меньше, больше или равно. Задача сортировки состоит в перестановке членов последовательности таким образом, чтобы выполнялось условие: ai <= ai+1, для всех i от 0 до n.

x y

Возможна ситуация, когда элементы состоят из нескольких полей (рис. 3).

 

Рис. 3

struct element { field x; field y; };

Если значение функции сравнения зависит только от поля x, то x называют ключом, по которому производится сортировка, или ключом сортировки. На практике в качестве x часто выступает число, а поле y хранит какие-либо данные, никак не влияющие на работу алгоритма.

Тип данных ключа должен включать операции сравнения ("=", ">", "<", ">=" и "<="). Задачей сортировки является преобразование исходной последовательности в последовательность, содержащую те же записи, но в порядке возрастания (или убывания) значений ключа.

Поскольку сортировка основана только на значениях ключа и никак не затрагивает оставшиеся поля записей, можно говорить о сортировке массивов ключей.




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 373; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.