- •2003-2004 Программирование. 1 курс. Лектор: доцент Певзнер л.В.
- •5.9. Сортировка и поиск
- •5.9.1. Сортировка
- •А. Сортировка выбором
- •B. Сортировка включением
- •C. Сортировка обменом
- •D. Сортировка слиянием
- •E. Внешняя сортировка
- •5.9.2. Поиск
- •5.9.3. Примеры сортировок
- •A. Пример сортировки выбором
- •B. Пример сортировки включением
- •C. Пример сортировки обменом
- •D. Пример сортировки слиянием
C. Пример сортировки обменом
Дано: Последовательность элементов М={1, 11, 2, 12, 3, 14, 4, 15}; n=8.
Выполняем сортировку обменом по вышеописанной схеме:
Обходы |
М |
Комментарий |
Первый обход |
1, 11, 2, 12, 3, 14, 4, 15 |
Сравниваем M[1]=1 и M[2]=11, |
|
11, 1, 2, 12, 3, 14, 4, 15 |
M[1]<M[2] – меняем их местами |
|
11, 1, 2, 12, 3, 14, 4, 15 |
Сравниваем M[2]=1 и M[3]=2, |
|
11, 2, 1, 12, 3, 14, 4, 15 |
M[2]<M[3] – меняем их местами |
|
11, 2, 1, 12, 3, 14, 4, 15 |
Сравниваем M[3]=1 и M[4]=12, |
|
11, 2, 12, 1, 3, 14, 4, 15 |
M[3]<M[4] – меняем их местами |
|
11, 2, 12, 1, 3, 14, 4, 15 |
Сравниваем M[4]=1 и M[5]=3, |
|
11, 2, 12, 3, 1, 14, 4, 15 |
M[4]<M[5] – меняем их местами |
|
11, 2, 12, 3, 1, 14, 4, 15 |
Сравниваем M[5]=1 и M[6]=14, |
|
11, 2, 12, 3, 14, 1, 4, 15 |
M[5]<M[6] – меняем их местами |
|
11, 2, 12, 3, 14, 1, 4, 15 |
Сравниваем M[6]=1 и M[7]=4, |
|
11, 2, 12, 3, 14, 4, 1, 15 |
M[6]<M[7] – меняем их местами |
|
11, 2, 12, 3, 14, 4, 1, 15 |
Сравниваем M[7]=1 и M[8]=4, |
|
11, 2, 12, 3, 14, 4, 15, 1 |
M[7]<M[8] – меняем их местами |
Результат 1: |
11, 2, 12, 3, 14, 4, 15, 1 |
|
|
11, 2, 12, 3, 14, 4, 15, 1 |
Сравниваем M[1]=11 и M[2]=1, |
|
11, 2, 12, 3, 14, 4, 15, 1 |
M[1]>M[2] обмена нет |
|
11, 2, 12, 3, 14, 4, 15, 1 |
Сравниваем M[2]=2 и M[3]=12, |
|
11, 12, 2, 3, 14, 4, 15, 1 |
M[2]<M[3] – меняем их местами |
|
11, 12, 2, 3, 14, 4, 15, 1 |
Сравниваем M[3]=2 и M[4]=3, |
|
11, 12, 3, 2, 14, 4, 15, 1 |
M[3]<M[4] – меняем их местами |
|
11, 12, 3, 2, 14, 4, 15, 1 |
Сравниваем M[4]=2 и M[5]=14, |
|
11, 12, 3, 14, 2, 4, 15, 1 |
M[4]<M[5] – меняем их местами |
|
11, 12, 3, 14, 2, 4, 15, 1 |
Сравниваем M[5]=2 и M[6]=4, |
|
11, 12, 3, 14, 4, 2, 15, 1 |
M[5]<M[6] – меняем их местами |
|
11, 12, 3, 14, 4, 2, 15, 1 |
Сравниваем M[6]=2 и M[7]=15, |
|
11, 12, 3, 14, 4, 15, 2, 1 |
M[6]<M[7] – меняем их местами |
Результат 2: |
11, 12, 3, 14, 4, 15, 2, 1 |
|
Второй обход |
11, 12, 3, 14, 4, 15, 2, 1 |
Сравниваем M[1]=11 и M[2]=12, |
|
12, 11, 3, 14, 4, 15, 2, 1 |
M[1]>M[2] меняем местами |
|
12, 11, 3, 14, 4, 15, 2, 1 |
Сравниваем M[2]=11 и M[3]=3, |
|
12, 11, 3, 14, 4, 15, 2, 1 |
M[2]<M[3] – обмена нет |
|
12, 11, 3, 14, 4, 15, 2, 1 |
Сравниваем M[3]=3 и M[4]=14, |
|
12, 11, 14, 3, 4, 15, 2, 1 |
M[3]<M[4] – меняем их местами |
|
12, 11, 14, 3, 4, 15, 2, 1 |
Сравниваем M[4]=3 и M[5]=4, |
|
12, 11, 14, 4, 3, 15, 2, 1 |
M[4]<M[5] – меняем их местами |
|
12, 11, 14, 4, 3, 15, 2, 1 |
Сравниваем M[5]=3 и M[6]=15, |
|
12, 11, 14, 4, 15, 3, 2, 1 |
M[5]<M[6] – меняем их местами |
Результат3: |
12, 11, 14, 4, 15, 3, 2, 1 |
|
Третий обход |
12, 11, 14, 4, 15, 3, 2, 1 |
Сравниваем M[1]=12 и M[2]=11, |
|
12, 11, 14, 4, 15, 3, 2, 1 |
M[1]>M[2] обмена нет |
|
12, 11, 14, 4, 15, 3, 2, 1 |
Сравниваем M[2]=11 и M[3]=14, |
|
12, 14, 11, 4, 15, 3, 2, 1 |
M[2]<M[3] – меняем их местами |
|
12, 14, 11, 4, 15, 3, 2, 1 |
Сравниваем M[3]=11 и M[4]=4, |
|
12, 14, 11, 4, 15, 3, 2, 1 |
M[3]>M[4] – обмена нет |
|
12, 14, 11, 4, 15, 3, 2, 1 |
Сравниваем M[4]=15 и M[5]=4, |
|
12, 14, 11, 15, 4, 3, 2, 1 |
M[4]<M[5] – меняем их местами |
Результат4: |
12, 14, 11, 15, 4, 3, 2, 1 |
|
Четвертый обход |
12, 14, 11, 15, 4, 3, 2, 1 |
Сравниваем M[1]=12 и M[2]=14, |
|
14, 12, 11, 15, 4, 3, 2, 1 |
M[1]<M[2] меняем их местами |
|
14, 12, 11, 15, 4, 3, 2, 1 |
Сравниваем M[2]=12 и M[3]=11, |
|
14, 12, 11, 15, 4, 3, 2, 1 |
M[2]<M[3] – меняем их местами |
|
14, 12, 11, 15, 4, 3, 2, 1 |
Сравниваем M[3]=11 и M[4]=15, |
|
14, 12, 15, 11, 4, 3, 2, 1 |
M[3]>M[4] – меняем их местами |
Результат 4: |
14, 12, 15, 11, 4, 3, 2, 1 |
|
Пятый обход |
14, 12, 15, 11, 4, 3, 2, 1 |
Сравниваем M[1]=14 и M[2]=12, |
|
14, 12, 15, 11, 4, 3, 2, 1 |
M[1]>M[2] – обмена нет |
|
14, 12, 15, 11, 4, 3, 2, 1 |
Сравниваем M[2]=12 и M[3]=15, |
|
14, 15, 12, 11, 4, 3, 2, 1 |
M[2]<M[3] – меняем их местами |
Реультат 5 |
14, 15, 12, 11, 4, 3, 2, 1 |
|
Шестой обход |
14, 15, 12, 11, 4, 3, 2, 1 |
Сравниваем M[1]=14 и M[2]=15, |
|
15, 14, 12, 11, 4, 3, 2, 1 |
M[1]<M[2] – меняем их местами |
|
15, 14, 12, 11, 4, 3, 2, 1 |
Сравниваем M[2]=14 и M[3]=12, |
|
15, 14, 12, 11, 4, 3, 2, 1 |
M[2]>M[3] – обмена нет |
Результат 6 |
15, 14, 12, 11, 4, 3, 2, 1 |
|
Седьмой обход |
15, 14, 12, 11, 4, 3, 2, 1 |
Сравниваем M[1]=15 и M[2]=14, |
|
15, 14, 12, 11, 4, 3, 2, 1 |
M[1]>M[2] – обмена нет |
Окончательный результат: |
15, 14, 12, 11, 4, 3, 2, 1 |
Последовательность упорядочена |