Pagini recente » Cod sursa (job #1524647) | Cod sursa (job #2292971) | Cod sursa (job #3203825) | Cod sursa (job #166755) | Cod sursa (job #1815847)
//QuickSort
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
#define dimMax 500005
int N, k;
void QuickSort(int v[], int left, int right) {
int pivot = v[(int)rand()%(right-left) + left];
int i, j;
i = left, j = right;
do {
//caut pozitiile
while(v[i] < pivot && i <= right) i++;
while(v[j] > pivot && j >= left) j--;
if(i <= j) {
swap(v[i], v[j]); //interschimb
i++; j--;
} //trec mai departe
}
while(i <= j); //cat timp nu se intalnesc
if(left < j) QuickSort(v, left, j);
if(i < right) QuickSort(v, i, right);
}
int main()
{
int v[dimMax], i;
fin>>N;
for(i = 0 ; i < N ; i++)
fin>>v[i];
QuickSort(v, 0, N - 1);
for(i = 0 ; i < N ; i++)
fout<<v[i]<<' ';
fin.close();
fout.close();
return 0;
}