Pagini recente » Cod sursa (job #2486408) | Cod sursa (job #2740665) | Cod sursa (job #2935513) | Cod sursa (job #1244245) | Cod sursa (job #945858)
Cod sursa(job #945858)
/*
QuickSort
*/
#include<fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500000],n,i;
void qSort(int left, int right);
int main()
{
fin>>n;
for(i=0;i<n;i++)
fin>>v[i];
qSort(0,n-1);
for(i=0;i<n;i++)
fout<<v[i]<<' ';
fout<<'\n';
fin.close();
fout.close();
return 0;
}
void qSort(int left, int right)
{
int pivot=v[(left+right)/2],tmp,min=left,max=right;
do{
while(v[min]<pivot)
min++;
while(v[max]>pivot)
max--;
if(min<=max)
tmp=v[min], v[min]=v[max], v[max]=tmp, min++, max--;
}while(min<=max);
if(left<max)
qSort(left,max);
if(right>min)
qSort(min,right);
}