void BubbleSort(int* arr, int N, long long int &countOb, long long int &countCou){ bool flag = true; int i = 0; while(flag) { int count = 0; for (int j = (N - 1); j > i; j--) { countCou++; if (arr[j - 1] > arr[j]) { int temp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = temp; countOb++; count++; } } if (count == 0) flag = false; i++; } } void GnomeSort(int* arr, int N, long long int &countOb, long long int &countCou) { int i = 1; // счётчик int j = (N - 1); while (i < j) { countCou++; if (i == 0) { i = 1; } if (arr[i-1] <= arr[i]) { ++i; // идём вперед } else { // меняем местами countOb++; long tmp = arr[i]; arr[i] = arr[i-1]; arr[i-1] = tmp; // идём назад --i; } } }