сортировка пузырьком улучшение через индекс
Процесс улучшения можно продолжить, если запоминать не только сам факт обмена, но и индекс последнего обмена K. Действительно: все пары соседних элементов с индексами, меньше К, уже расположены в нужном порядке. Дальнейшие проходы можно заканчивать на индексе К, вместо того, чтобы двигаться к установленной заранее верхней границы.(Как это сделать?)
#include <iostream>
#include <cstdlib>
#include <time.h>
#define N 10
using namespace std;
void print(int arr[], int size)
{
for (int i = 0; i < size; i++)
cout << arr[i] << " ";
cout << endl;
}
int main(){
srand(time(NULL));
int* array;
array = new int[N];
for (int i = 0; i < N; i++) {
array[i] = rand();
cout << array[i] << " ";
}
int temp;
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < N - i - 1; j++) {
if (array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
print(array, N);
}
}
}
cout << endl;
cout << "Sorted massiv" << endl;
print(array, N);
}