Способы сортировки в массивах данных

Для реализации алгоритма любого способа сортировки требуется прохождение не менее двух вложенных циклов.

4.2.1. Пузырьковая сортировка (попарные перестановки) выполняется многократными перестановками каждых двух соседних элементов, нарушающих порядок; процесс завершается, когда достигается упорядоченность массива.

Алгоритм пузырьковой сортировки можно реализовать с помощью двух циклов с параметром (внешнего и вложенного). Наибольший/наименьший (в зависимости от признака порядка) элемент массива в последнем проходе вложенного цикла «всплывает, как пузырек», попадая на свое место в начало/конец (или наоборот) массива, после чего начальное/конечное значение параметра цикла изменяется на единицу (увеличивается/уменьшается), тем самым с каждым проходом внешнего цикла уменьшается количество проходов внутреннего цикла.

Блок-схема алгоритма перестановок элементов массива (сортировка по возрастанию):

Также алгоритм пузырьковой сортировки можно реализовать, используя в качестве внешнего цикла цикл с постусловием (переменная f используется в качестве признака перестановок):

4.2.2. Сортировка простого выбора (минимума/максимума) выполняется перестановками каждого элемента с минимальным/максимальным (в зависимости от признака порядка) среди следующих за ним элементов.

Блок-схема алгоритма перестановок элементов массива (сортировка по возрастанию):

II. Контрольные вопросы.

1. Чем является переменная в программе?

2. Что означает унарная операция «&», к каким объектам она применима?

3. Какое значение может принимать адрес?

4. Чем является указатель, что он содержит?

5. Для чего используются указатели?

6. Что означает унарная операция «*», что является ее результатом?

7. На объект какого типа может ссылаться указатель?

8. Что означает указатель на тип void?

9. Что такое статическая структура данных?

10. Чем характеризуются переменные статических структур?

11. Что представляет собой массив данных?

12. На каком этапе выделяется память под элементы массива?

13. Меняется ли объем памяти, выделенный под массив, во время выполнения программы?

14. Как занести в указатель адрес первого элемента массива?

15. На что ссылается любой указатель?

16. Что является результатом операции указатель+i?

17. Чем отличаются операции p++ и *p++, если p – указатель?

18. Чем отличаются операции (*p)++ и *(++p), если p – указатель?

19. Что означает линейный поиск в массиве данных?

20. Что называется сортировкой информационной структуры?

21. Какие существуют признаки порядка?

22. В чем заключается суть пузырьковой сортировки массива данных?

23. Как выполнить сортировку массива простым выбором?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: