Pagini recente » Cod sursa (job #2387589) | Cod sursa (job #982851) | Cod sursa (job #2348913) | Cod sursa (job #1130066) | Cod sursa (job #1745917)
#include<fstream>
#define NMax 500000
using namespace std;
int a[NMax], n;
void Read()
{
ifstream fin("algsort.in");
fin >> n;
for(int i=0; i<n; i++)
fin >> a[i];
fin.close();
}
int Div(int p, int q)
{
int left = p , right = q, pivot = a[p];
while(left < right)
{
while(left < right && a[right] >= pivot) right--;
a[left] = a[right];
while(left < right && a[left] <= pivot) left++;
a[right] = a[left];
}
a[left] = pivot;
return left;
}
void quicksort(int p, int q)
{
int m = Div(p, q);
if(m-1 > p) quicksort(p, m-1);
if(m+1 < q) quicksort(m+1, q);
}
int main()
{
ofstream fout("algsort.out");
Read();
quicksort(0, n-1);
for(int i=0; i<n; i++)
fout << a[i] <<" ";
fout.close();
return 0;
}