Pagini recente » Cod sursa (job #1524755) | Cod sursa (job #268069) | Cod sursa (job #2891931) | Cod sursa (job #505713) | Cod sursa (job #971297)
Cod sursa(job #971297)
#include <fstream>
#include <ctime>
#include <cstdlib>
void swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
void quiksort(int nArr[], int left, int right)
{
int l = left, r = right;
int pivot = nArr[l + rand() % (right - l)];
while(l < r)
{
while(nArr[l] < pivot)
l++;
while(nArr[r] > pivot)
r--;
if(l <= r)
{
swap(nArr[l], nArr[r]);
l++;
r--;
}
}
if(left < r) quiksort(nArr, left, r);
if(right > l) quiksort(nArr, l, right);
}
int main(void)
{
std::ofstream out("algsort.out");
std::ifstream in("algsort.in");
int nV, *nArr;
srand(time(NULL));
in >> nV;
nArr = new int[nV];
for(int i(0); i < nV; i++)
in >> nArr[i];
quiksort(nArr, 0, nV - 1);
for(int i(0); i < nV; i++)
out << nArr[i] << ' ';
return 0;
}