Измените проект упорядочения одномерного массива методом обмена, чтобы
его исполнение прерывалось, если при очередном прохождении массива
никакого обмена не вышло. Сохраните проект в папке с именем Задание 5.3.4, созданной в вашей папке. Объясните, какие именно изменения вы произвели.
Срочно!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Answers & Comments
#include <stdio.h>
#define SIZE 10
int main() {
int arr[SIZE] = {3, 9, 4, 2, 1, 8, 5, 7, 6, 0};
int i, j, temp, swapped;
for (i = 0; i < SIZE - 1; i++) {
swapped = 0; // флаг, который будет фиксировать, был ли произведен обмен на данном проходе
for (j = 0; j < SIZE - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = 1; // устанавливаем флаг, если был произведен обмен
}
}
if (!swapped) { // если обмен не был произведен, значит, массив уже упорядочен
break;
}
}
for (i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
return 0;
}