Pagini recente » Cod sursa (job #1494894) | Cod sursa (job #1117611) | Cod sursa (job #1178185) | Cod sursa (job #894606) | Cod sursa (job #649808)
Cod sursa(job #649808)
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
using namespace std;
int compare(const void *a,const void *b)
{
return (*(int*)a - *(int*)b);
}
int pivot(int *a,int st, int dr)
{
int sens = 1;
while(st <= dr)
{
if(a[st] > a[dr])
{
swap(a[st],a[dr]);
sens = 1 - sens;
}
else
sens == 1 ? st++ : dr--;
}
return dr;
}
void Quicksort(int *a,int st, int dr)
{
if(st <= dr)
{
int p = pivot(a,st,dr);
Quicksort(a,st,p-1);
Quicksort(a,p+1,dr);
}
}
int main()
{
FILE *f = fopen("algosort.in","r");
FILE *g = fopen("algosort.out","w");
int n, *a;
fscanf(f,"%d", &n);
a = (int*) malloc (n*sizeof(n));
for(int i=0; i<n; i++)
fscanf(f,"%d", &a[i]);
// qsort(a,n,sizeof(int),compare);
Quicksort(a,0,n-1);
for(int i=0; i<n; i++)
fprintf(g,"%d ", a[i]);
free(a);
return 0;
}