CCCPaste

Untitled

#include 
#include 
#include 
int counter;
void quick_sort(std::vector arr, int S, int E) {
    int i = S, j = E;
    int pivotal = arr[(S + E) / 2];
    while(i <= j) {
        while(arr[i] < pivotal) {
            counter++;
            i++;
        }
        while(arr[j] > pivotal) {
            counter++;
            j--;
        }
        
        if(i <= j) {
            counter++;
            std::swap(arr[i], arr[j]);
            i++;
            j--;
        }
        counter++;
    }
    if(S < j) {
        counter++;
        quick_sort(arr, S, j);
    }
    if(i < E) {
        counter++;
        quick_sort(arr, i, E);
    }
}
                                          
int main()
{
    std::ios_base::sync_with_stdio(0);
    // 1, 2, 3, 4, 5, 6, 7
    // 5, 4, 3, 2, 1, 6, 7
    std::vector v{1, 2, 3, 4 ,5 ,6, 7};
    
    int maks=  0;
    do{
        counter = 0;
        std::vector v2 = v;
        quick_sort(v2, 0, 6);
        if(counter == 37) {
            for(int j = 0; j < 7; j++) {
                std::cout << v[j] << " ";
            }
            std::cout << std::endl;
        }
       
        
      }while(std::next_permutation(v.begin(), v.end()));
    return 0;
}