Pagini recente » Cod sursa (job #610945) | Cod sursa (job #2947064) | Cod sursa (job #1734879) | Cod sursa (job #290440) | Cod sursa (job #340918)
Cod sursa(job #340918)
#include <stdio.h>
#define p 500001
int i,sir[p],n;
FILE*f=fopen("algsort.in","r");
FILE*g=fopen("algsort.out","w");
void citire(){
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&sir[i]);
}
void swap(int *a, int *b){
int t=*a; *a=*b; *b=t;
}
void qsort(int arr[], int beg, int end){
if (end > beg + 1){
int piv = arr[beg], left = beg + 1, right = end;
while (left < right){
if (arr[left] <= piv)
left++;
else
swap(&arr[left], &arr[--right]);
}
swap(&arr[--left], &arr[beg]);
qsort(arr, beg, left);
qsort(arr, right, end);
}
}
void scriere(){
for(i=1;i<=n;i++){
fprintf(g,"%d ",sir[i]);
}
}
int main(){
citire();
qsort(sir,1,n+1);
scriere();
fclose(f);
fclose(g);
return 0;
}