Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2021 / OIT_lek_sem_22_09_2021.docx
Скачиваний:
1
Добавлен:
14.12.2023
Размер:
38.04 Кб
Скачать

Void main() {

int x[] = {6,4,9,3,1,2,7,5,8,1};

int i, j, n, t;

n = sizeof(x) / sizeof(x[0]);

for (i = 0; i < n-1; i++) // внешний цикл

for (j = 0; j < n - 1- i; j++) // внутренний цикл

if (x[j] > x[j + 1]) {

t = x[j];

x[j] = x[j + 1];

x[j + 1] = t;

}

for (i = 0; i < n; i++)

cout << x[i] << ' ';

}// конец функции main

Функция main начинается с инициализации массива x. Далее вычисляется его размер n. Затем выполняется сортировка во вложенных циклах с управляющими переменными соответственно i и j. Внутренний цикл необходим для сравнения двух элементов: текущего и следующего. Если текущий элемент оказывается больше следующего, тогда их меняют местами с помощью вспомогательной переменной t. Таким образом, после первого прохода внутреннего цикла на последнем месте в массиве окажется наибольший из n элементов – это 9. Чтобы в итоге массив оказался отсортированным, необходим внешний цикл для организации повторов внутреннего цикла. Во втором (при i=1) прогоне цикла j на предпоследнем месте окажется наибольший элемент из оставшихся n-i – это 8 и т.д. При сравнении двух элементов (текущего и следующего) нельзя выйти за объявленную границу размерности массива, поэтому в условии выполнения внутреннего цикла используется n-1 (j<n-1-i;). Внешнему циклу достаточно выполнить n-1 повторов цикла j, потому что при i=8 первый элемент массива с индексом 0 и второй – с индексом 1 уже окажутся упорядоченными.

30

Соседние файлы в папке Лекции 2021