Pagini recente » Cod sursa (job #1295967) | Cod sursa (job #1154714) | Cod sursa (job #3221126) | Cod sursa (job #541414) | Cod sursa (job #649819)
Cod sursa(job #649819)
#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[100000];
fscanf(f,"%d", &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]);
return 0;
}