Cod sursa(job #2849763)

Utilizator horiaSefHoria Oprescu horiaSef Data 15 februarie 2022 19:00:48
Problema Sortare Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>

using namespace std;

int a[101], n, k;

void poz(int li, int ls, int &k, int a[]){
    int i = li;
    int j = ls;
    int i1 = 0;
    int j1 = -1;
    int c;

    while(i < j){
        if(a[i] > a[j]){
            a[i] = a[i]^a[j];
            a[j] = a[i]^a[j];
            a[i] = a[i]^a[j];
            c = i1;
            i1 = -j1;
            j1 = -c;
        }
        i += i1;
        j += j1;
    }
    k = i;
}

void quick(int li, int ls){
    if(li < ls){
        poz(li, ls, k, a);
        quick(li, k-1);
        quick(k+1, ls);
    }
}

int main()
{
    scanf("%d", &n);
    for(unsigned int i = 1; i <= n; i++){
        printf("a[%d]=", i);
        scanf("%d", &a[i]);
    }
    quick(1, n);

    for(unsigned int i = 1; i <= n; i++)
        printf("%d ", a[i]);

    return 0;
}