сортировка пузырьком улучшение через индекс

Процесс улучшения можно продолжить, если запоминать не только сам факт обмена, но и индекс последнего обмена 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);
 
}

Ответы (0 шт):