Pagini recente » Cod sursa (job #2513735) | Cod sursa (job #1300354) | Cod sursa (job #2790290) | Cod sursa (job #2121166) | Cod sursa (job #628391)
Cod sursa(job #628391)
#include<fstream>
#define nmax 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int a[nmax],n;
void citire()
{fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i];
}
void afisare()
{for(int i=1;i<=n;i++)
fout<<a[i]<<" ";
}
int poz_pivot(int st,int dr)
{int i,j,pivot=a[st];
i=st;j=dr;
while(i<j)
{while(i<j && a[j]>=pivot) j--;
a[i]=a[j];
while(i<j && a[i]<=pivot) i++;
a[j]=a[i];
}
a[i]=pivot;
return i;
}
void qsort(int st,int dr)
{int pivot=poz_pivot(st,dr);
if(st<pivot-1) qsort(st,pivot-1);
if(dr>pivot+1) qsort(pivot+1,dr);
}
int main()
{citire();
qsort(1,n);
afisare();
fin.close();
fout.close();
return 0;
}