Cod sursa(job #1849703)

Utilizator 1475369147896537415369Andrei Udriste 1475369147896537415369 Data 17 ianuarie 2017 19:38:32
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.88 kb
#include<stdio.h>
#include<stdlib.h>
//--------------------------------------------
void swap(long long v[],long long i,long long j){

long long temp;

temp = v[i];
v[i] = v[j];
v[j] = temp;
}

void QuickSort(long long v[], long long left, long long right){

long long i,last;

if(left>=right){
    return;
}
swap(v,left,(left+right)/2);
last=left;

for(i=left+1;i<=right;i++){
    if(v[i] < v[left]){
        swap(v,++last,i);
    }
}
swap(v,left,last);
QuickSort(v,left,last-1);
QuickSort(v,last+1,right);
}
//--------------------------------------------
int main() {

freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);

int N, i, x, A[500000];

scanf("%d", &N);

for(i=0; i<N; i++){
    scanf("%d", &A[i]);
}
QuickSort(A, 0, N-1);

for(i=0; i<N; i++){
    printf("%d ", A[i]);
}
}
//--------------------------------------------