Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Сравнение прямых методов сортировки.

Читайте также:
  1. Amp;Сравнительная характеристика различных методов оценки стоимости
  2. D. обобщение, сравнение анализ ,синтез
  3. II. Сравнение потоков и процессов
  4. IV. Обсуждение больных и методов их лечения
  5. VII. Определение методов исследования.
  6. а) найти уравнения прямых регрессии, построить их графики на одном чертеже с эмпирическими линиями регрессии и дать экономическую интерпретацию полученных уравнений;
  7. Алгоритм тестирования НГМД методом записи-чтения со сравнением.
  8. Анализ методов разработки электронного учебника
  9. Анализ методов регулирования производительности насосов
  10. Анализ прямых материальных затрат

 

Название метода C(n) M(n) T(n)
в лучшем случае в худшем случае в лучшем случае в худшем случае в лучшем случае в худшем случае
Прямой Выбор n2-n n2-n 3(n-1) 3(n-1)+n2/4 5 n2 + 23 n -11 2 2 13 n2 + 23 n -11 2 2
Прямой Обмен n2-n n2-n   3(n2-n) 7 n2 + 5 n -3 2 2 8n2-2n-3
Прямое Включение n-1 n2-n 2(n-1) n2+3n-4 18n — 16   5n2+8n-11

 

Выводы:

 

1. Все прямые методы сортировки порядка О(n2), т.к. Т(n)» C n2 в худшем случае.

 

2. В худшем случае Обменная сортировка проигрывает сортировке Выбором и сортировке Включением. Из этих двух последних сортировка Выбором лучше, т.к. в ней меньше перестановок, отсюда рекомендация: при сортировке сложных (громоздких) данных использовать сортировку Выбором.

 

3. Сортировка выбором никак не реагирует на упорядоченность элементов. Поэтому рекомендуется: в случае почти упорядоченной совокупности использовать сортировку Включением.

 

4. При небольших n затраты временные во всех трёх методах практически одинаковые. Из-за простоты метода лучше всего запоминается и часто используется именно метод Обменной сортировки.

Cортировка сложных данных

 

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

Для данных сложных типов не определены операции отношения, поэтому (если они определены в самой задаче) проверки типа if a [j] > a [j+1] { ….} оформляются в процедурах или функциях. Например, функция P(a,b) возвращает true, если a > b. Тогда указанный фрагмент запишется if (P(a [j], a [j+1])) { …}

В случае сортировки по значениям упорядочивающей функции f(x) рекомендуется сформировать вектор значений упорядочивающей функции U = {f(a 1), f(a 2), …,f(a n)}. Сравнения элементов в описанных алгоритмах заменяются сравнением значений упорядочивающей функции, но переставлять в этом случае необходимо и сами элементы и значения упорядочивающей функции. Например, фрагмент пузырьковой сортировки запишется так

if (u [j] > u [j+1]) { u [j] Û u [j+1]; а [j] Û a [j+1]};

При сортировке сложных данных часто, чтобы не переставлять элементы в совокупности и значения упорядочивающей функции, применяют алгоритмы сортировки с использованием вектора индексов. Для этого заводят специальный вектор, назовём его Ind: помещают в Ind индексы элементов 1, 2, 3, …,n. В алгоритмах сортировки вместо перестановки элементов и значений упорядочивающей функции переставляют их индексы. Однако, необходимо помнить в этом случае, что доступ к элементам совокупности и значениям упорядочивающей функции выполняется через вектор индексов:

 

a [ Ind[j] ] вместо a [j], u [ Ind [j] ] вместо u [ j ]

if (a[ Ind[j] ] >a[ Ind[j+1] ]) { Ind[j] ÛInd[j+1] }

if (u [ Ind [j] ]> u [ Ind [j+1] ]) { Ind[j] ÛInd[j+1] }

 




Дата добавления: 2014-12-20; просмотров: 93 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав