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