9-Lesson №18

Урок №18. Сортировка массива.

Под сортировкой (упорядочением) массива понимают перераспределение его элементов в некотором определённом порядке.

Порядок, при котором в массиве первый элемент имеет самое маленькое значение, а значение каждого следующего элемента не меньше значения предыдущего элемента, называют неубывающим.

Порядок, при котором в массиве первый элемент имеет самое большое значение, а значение каждого следующего элемента не больше значения предыдущего элемента, называют невозрастающим.

Цель сортировки — облегчить последующий поиск элементов: искать нужный элемент в упорядоченном массиве легче.

Разработано множество алгоритмов сортировки. Рассмотрим один из них — сортировку выбором.

Сортировка выбором (например, по невозрастанию) осуществляется следующим образом:

  1. в массиве выбирается максимальный элемент;
  2. максимальный и первый элементы меняются местами, после чего первый элемент считается отсортированным;
  3. в неотсортированной части массива снова выбирается максимальный элемент; он и первый неотсортированный элемент массива меняются местами;
  4. действия, описанные в п. 3, повторяются с неотсортированными элементами массива до тех пор, пока не останется один неотсортированный элемент (его значение будет минимальным).

Рассмотрим процесс сортировки выбором на примере массива

В этом массиве из 8 элементов операцию выбора максимального элемента мы проводили 7 раз. В массиве из К элементов такая операция будет проводиться N — 1 раз. Объясните почему.

Приведём фрагмент программы, реализующий описанный алгоритм:

for i in range(N-1): 
imax = i
for j in range(i+1,N):
if A[j] > A[imax]:
imax= j
A[i], A[imax] = A[imax], A[i]

Здесь мы использовали один цикл внутри другого. Такая конструкция называется вложенным циклом.

Запишите полный текст программы и выполните её на компьютере для рассмотренного в примере массива А.

Разработайте подпрограмму max для поиска максимального из двух элементов массива. Модифицируйте программу сортировки выбором, использовав в ней эту подпрограмму.

Выполнить домашнюю работу

Выполнить классную работу