Студопедия

КАТЕГОРИИ:


Архитектура-(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. Линейный выбор с обменом. Последовательными сравнениями ищется минимальный (или максимальный) элемент массива, причем в процессе поиска запоминается индекс (номер) текущего минимального элемента. После того, как просмотрены все элементы, можно поменять местами 1-й элемент с наименьшим, индекс которого в этот момент известен. Затем эта процедура повторяется, начиная со 2-го, 3-го, и т.д. до N-1 элемента.

 

 

Пример:

5 2 4 1 3 исходный массив

 

_ 5 2 4 1 3 номер минимального элемента = 4

1 _ 2 4 5 3 номер минимального элемента = 2

1 2 _ 4 5 3 номер минимального элемента = 5

1 2 3 _ 5 4 номер минимального элемента = 5

1 2 3 4 5 упорядоченный массив

3. Метод стандартного обмена (метод "пузырька"). Используяэтот метод будем производить последовательные просмотры элементов, и каждый раз, пара за парой сравнивать соседние ключи. Если значение ключей в паре расположены в порядке возрастания (убывания), то оставляем их без изменения, в противном случае меняем их местами и переходим к следующей паре. Сортировка считается оконченной, если в ходе просмотра не была произведена ни одна перестановка. Например:

Исходный массив 1 7 6 4 2 5

 

1-й просмотр 1 7 6 4 2 5

6 7 число

4 7 перестановок

2 7 равно 4

5 7

--------------

1 6 4 2 5 7

2-й просмотр 1 6 4 2 5 7

4 6 число

2 6 перестановок

5 6 равно 3

--------------

1 4 2 5 6 7

3-й просмотр 1 4 2 5 6 7 число

2 4 перестановок

равно 1

--------------

1 2 4 5 6 7

4-й просмотр 1 2 4 5 6 7 число

перестановок

равно 0

4. Метод просеивания. Отличие этого метода от других заключается в том, что в нем не сохраняется фиксированной последовательность сравнений. Для дальнейшего описания алгоритма назовем нисходящий обмен "первичным", а восходящий - "вторичным". Сортировка начинается также как и при использовании метода "пузырька". Как только будет найден ключ меньший (больший) предыдущего, начинается вторичный обмен, найденный ключ поднимается вверх по списку до тех пор, пока не будет найден ключ, меньший передвигаемому. Тогда вторичный обмен заканчивается и продолжается первичный обмен с того места, где он был прерван. Сортировка оканчивается, когда первичное сравнение охватит N-й элемент.

Например:

3 3 3 3 3. 1

11 6 4 4 4. 2

*6 11 6 6 5. 3

4 *4 11 9 6. 4

9 *9 11 9. 5

5 *5 11. 6

7 *7. 7

8. 8

10. 9

2. 10

1. 11

5. Метод Шелла. Эта сортировка является расширением метода
просеивания. Список из N элементов разбивается на N/2 частей. Элемент
каждой части отстоит друг от друга на N/2 позиций.

Например:

Шаг = int (11/2) = 5

Шаг = int(5/2) = 2 шаг = int(2/2) = 1

 

3 1 1 1 1

11 7 7 3 2

6 6 2 2 3

4 4 4 4 4

9 2 5 5 5

5 3 3 7 6

7 11 6 6 7

8 8 8 8 8

10 10 10 10 9

2 9 9 9 10

1 5 11 11 11

Усовершенствованный метод использует последовательность шагов хi, xi =3*xi-1 +1. Для хi, получаем значения: х1=1, х2=4, xз=13, х4=40, x5=121, x6=364, x7= 1093,..... Предположим, что надо отсортировать 1000 значений. Ищем наименьшее хm>1000, т.е. x7=1093. Метод рассматривает шаги, начиная с 5, потому, что xm-27-2=x5 и до первого шага включительно.




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


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


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



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




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