- •Министерство образования и науки рф
- •2. Структура контрольной работы
- •3. Оформление контрольной работы
- •4. Тема и задания по контрольной работе
- •5. Содержание и порядок выполнения контрольной работы
- •6 Понятие алгоритма
- •6.1 Способы записи алгоритмов
- •6.2 Графические символы
- •6.3 Базовые алгоритмические структуры
- •6.4 Примеры составления алгоритмов
- •6.4.1 Алгоритмы линейной структуры
- •6.4.2 Алгоритмы разветвляющейся структуры
- •6.4.3 Алгоритмы циклической структуры
- •6.5 Внешняя и внутреняя сортировка
- •6.5.1 Понятие сортировки
- •6.5.2 Сортировка с простым включением
- •6.5.3 Сортировка методом Шелла
- •6.5.4 Сортировка «методом пузырька»
- •6.5.5 Шейкерная сортировка.
- •6.5.6 Сортировка выбором.
- •6.5.7 Сортировка разделением.
- •6.5.8 Сортировка с помощью дерева.
- •Пирамидальная сортировка.
- •Сортировка со слиянием.
- •Внешняя сортировка прямым слиянием.
- •6.5. 12 Естественное слияние.
- •6.5. 12 Сбалансированное многолучевое слияние.
- •200_ – 200_ Уч. Г.
6.5.4 Сортировка «методом пузырька»
Начиная с конца массива сравниваются два соседних элемента (a[n] и a[n-1]). Если выполняется условие a[n-1] > a[n], то значения элементов меняются местами. Процесс продолжается для a[n-1] и a[n-2] и т.д., пока не будет произведено сравнение a[2] и a[1]. Понятно, что после этого на месте a[1] окажется элемент массива с наименьшим значением. На втором шаге процесс повторяется, но последними сравниваются a[3] и a[2]. И так далее. На последнем шаге будут сравниваться только текущие значения a[n] и a[n-1].
Массив: 23, 8, 5, 65, 47, 34, 1, 6
Шаг 1: i1= 23, 8, 5, 65, 47, 34, 1, 6
Шаг 2: i2= 23, 8, 5, 65, 47, 34, 1, 6
5, 8, 23, 65, 47, 1, 34, 6
5, 8, 23, 65, 1, 47, 34, 6
5, 8, 23, 1, 65, 47, 34, 6
5, 8, 1, 23, 65, 47, 34, 6
5, 1, 8, 23, 65, 47, 34, 6
1, 5, 8, 23, 65, 47, 34, 6
Шаг 3: i3= 1, 5, 8, 23, 65, 47, 34, 6
1, 5, 8, 23, 65, 47, 6, 34
1, 5, 8, 23, 65, 6, 47, 34
1, 5, 8, 23, 6, 65, 47, 34
1, 5, 8, 6, 23, 65, 47, 34
1, 5, 6, 8, 23, 65, 47, 34
Шаг 4: i4= 1, 5, 6, 8, 23, 65, 47, 34
1, 5, 6, 8, 23, 65, 34, 47
1, 5, 6, 8, 23, 34, 65, 47
Шаг 5: i5= 1, 5, 6, 8, 23, 34, 65, 47
1, 5, 6, 8, 23, 34, 47, 65
6.5.5 Шейкерная сортировка.
Массив: 23, 8, 5, 65, 47, 34, 1, 6
Шаг 1: 23, 8, 5, 65, 47, 34, 1, 6
23, 8, 5, 65, 47, 1, 34, 6
23, 8, 5, 65, 1, 47, 34, 6
23, 8, 5, 1, 65, 47, 34, 6
23, 8, 1, 5, 65, 47, 34, 6
23, 1, 8, 5, 65, 47, 34, 6
1, 23, 8, 5, 65, 47, 34, 6
Шаг 2: 1, 23, 8, 5, 65, 47, 34, 6
1, 23, 5, 8, 65, 47, 34, 6
1, 5, 23, 8, 65, 47, 34, 6
Шаг 3: 1, 5, 23, 8, 65, 47, 34, 6
1, 5, 23, 8, 65, 47, 6, 34
1, 5, 23, 8, 65, 6, 47, 34
1, 5, 23, 8, 6, 65, 47, 34
1, 5, 23, 6, 8, 65, 47, 34
1, 5, 6, 23, 8, 65, 47, 34
Шаг 4: 1, 5, 6, 23, 8, 65, 47, 34
1, 5, 6, 8, 23, 65, 47, 34
Шаг 5: 1, 5, 6, 8, 23, 65, 47, 34
1, 5, 6, 8, 23, 65, 34, 47
1, 5, 6, 8, 23, 34, 65, 47
Шаг 6: 1, 5, 6, 8, 23, 34, 65, 47
1, 5, 6, 8, 23, 34, 47, 65
6.5.6 Сортировка выбором.
При сортировке массива a[1], a[2], ..., a[n] методом простого выбора среди всех элементов находится элемент с наименьшим значением a[i], и a[1] и a[i] обмениваются значениями. Затем этот процесс повторяется для получаемых подмассивов a[2], a[3], ..., a[n], ... a[j], a[j+1], ..., a[n] до тех пор, пока мы не дойдем до подмассива a[n], содержащего к этому моменту наибольшее значение.
Массив: 23, 8, 5, 65, 47, 34, 1, 6
Шаг 1: 23, 8, 5, 65, 47, 34,1, 6
1, 8, 5, 65, 47, 34,23, 6
Шаг 2: 1, 8,5, 65, 47, 34, 23, 6
1, 5,8, 65, 47, 34, 23, 6
Шаг 3: 1, 5, 8, 65, 47, 34, 23,6
1, 5, 6, 65, 47, 34, 23,8
Шаг 4: 1, 5, 6, 65, 47, 34, 23,8
1, 5, 6, 8, 47, 34, 23,65
Шаг 5: 1, 5, 6, 8, 47, 34,23, 65
1, 5, 6, 8, 23, 34,47, 65
6.5.7 Сортировка разделением.
1. В исходном неотсортированном массиве выбрать некоторый элемент x = a(k) (барьерный элемент).
2. Переставить элементы массива таким образом, чтобы слева от x оказались элементы массива, меньшие или равные x, а справа элементы массива, большие чем х.
3. Для дальнейшей сортировки необходимо применить п. 1, 2 для каждой из этих частей. И так до тех пор. Пока не останутся подмассивы, состоящие из одного элемента, то есть пока не будет отсортирован весь массив.
Массив: 23, 8, 5, 65, 47, 34, 1, 6
1. Выбираем средний элемент: 23, 8, 5, 65, 47, 34, 1, 6
2. Сортируем вправо от среднего элемента числа больше выбранного, а влево меньше:
23, 8, 5, 65, 47,34, 1,6
23, 8, 5, 65, 47,34, 1,6 – массив без изменений
23, 8, 5, 65, 47,34, 1,6 – массив без изменений
23, 8, 5, 65, 47,34, 1,6 – массив без изменений
23, 8, 5, 65, 47,34, 1,6 – меняем местами 6 и 65, т.к. 6<34 и 65>34: 23, 8, 5,6, 47,34, 1,65
23, 8, 5, 6, 47,34,1, 65 – меняем местами 1 и 47, т.к. 1<34 и 47>34: 23, 8, 5, 6,1,34,47, 65
Правая часть упорядочена, теперь выбираем среднее значение для левой части исключая число 34:
23, 8, 5, 6, 1, 34, 47, 65
23, 8,5, 6,1, 34, 47, 65 – меняем местами 1 и 23, т.к. 1<5 и 23>5: 1, 8,5, 6,23, 34, 47, 65
1, 8,5, 6, 23, 34, 47, 65 – меняем местами 8 и 5, т.к. 8>5: 1,5,8, 6, 23, 34, 47, 65
1, 5, 8,6, 23, 34, 47, 65 – меняем местами 8 и 6, т.к. 8>6: 1, 5,6,8, 23, 34, 47, 65