Pagini recente » Cod sursa (job #2669042) | Cod sursa (job #976430) | Cod sursa (job #2036872) | Cod sursa (job #2073928) | Cod sursa (job #542692)
Cod sursa(job #542692)
#include<stdio.h>
using namespace std;
long long A[500001];
long int n;
void citire(void)
{
FILE *f = fopen("algsort.in","r");
fscanf(f,"%d",&n);
for(int i=1;i<=n;i++)
fscanf(f,"%d ",&A[i]);
fclose(f);
}
long int poz(int li,int ls)
{
int i1 = 0;
int j1 = -1;
int c = A[li];
int a = (int)(li+ls)/2;
A[li] = A[a];
A[a] = c;
while(li<ls)
{
if(A[li]>=A[ls])
{
c = A[li];
A[li] = A[ls];
A[ls] = c;
c = -i1;
i1 = -j1;
j1 = c;
}
li += i1;
ls += j1;
}
return li;
}
void quick(int li,int ls)
{
if(li<ls)
{
long int k = poz(li,ls);
quick(li,k-1);
quick(k+1,ls);
}
}
void afisare(void)
{
FILE *f = fopen("algsort.out","w");
for(int i=1;i<=n;i++)
fprintf(f,"%d ",A[i]);
fclose(f);
}
int main()
{
citire();
quick(1,n);
afisare();
return 0;
}