Pagini recente » Cod sursa (job #1196809) | Cod sursa (job #1676722) | Cod sursa (job #370392) | Monitorul de evaluare | Cod sursa (job #2274587)
#include <bits/stdc++.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int arr[500001];
void swp(int &a, int &b)
{
int aux;
aux = a;
a = b;
b = aux;
}
int part(int st, int dr)
{
int pivot = arr[dr];
int i, j;
i = st;
for(j = st; j < dr; j++){
if(arr[j] <= pivot){
if(i != j) swp(arr[j], arr[i]);
i++;
}
}
swp(arr[i], arr[dr]);
return i;
}
void quicksort(int l, int r)
{
// cout<<l<<" "<<r<<" ";
if(l < r){
int p = part(l,r);
quicksort(l, p - 1);
quicksort(p + 1, r);
}
}
int main()
{
int n, i;
f>>n;
for( i = 1; i <= n; i++) f>>arr[i];
//for( i = 1; i <= n; i++) g<<arr[i]<<" ";
quicksort(1,n);
for( i = 1; i <= n; i++) g<<arr[i]<<" ";
return 0;
}