Pagini recente » Cod sursa (job #2154931) | Cod sursa (job #2068322) | Cod sursa (job #54966) | Cod sursa (job #2109925) | Cod sursa (job #2669664)
#include <stdio.h>
#include <stdlib.h>
void swap(int *a, int *b){
int aux = *a;
*a = *b;
*b = aux;
}
void mysort(int v[], int start, int end){
int pivot = v[(start + end) / 2];
int i1 = start, i2 = end;
while (v[i1] < pivot) i1 ++;
while (v[i2] > pivot) i2 --;
while (i2 > i1){
swap(&v[i1], &v[i2]);
do i1 ++; while (v[i1] < pivot);
do i2 --; while (v[i2] > pivot);
}
if (start < i2) mysort(v, start, i1);
if (i1 + 1 < end) mysort(v, i1 + 1, end);
}
int main()
{
FILE *fin, *fout;
fin= fopen("algsort.in", "r");
fout = fopen("algsort.out", "w");
int v[100], n;
fscanf(fin, "%d", &n);
for (int i = 0; i < n ; i ++){
fscanf(fin, "%d", &v[i]);
}
mysort(v, 0, n - 1);
for (int i = 0; i < n; i ++) fprintf(fout, "%d ", v[i]);
return 0;
}