Mai intai trebuie sa te autentifici.
Cod sursa(job #1849752)
| Utilizator | Data | 17 ianuarie 2017 20:00:37 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 80 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.87 kb |
#include<stdio.h>
#include<stdlib.h>
//--------------------------------------------
void swap(int v[], int i, int j){
int temp;
temp = v[i];
v[i] = v[j];
v[j] = temp;
}
void QuickSort(int v[], int left, int right){
int i, last;
if(left>=right){
return;
}
swap(v, left, left + rand() % (right - left + 1));
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[500004];
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]);
}
}
//--------------------------------------------
