Pagini recente » Cod sursa (job #1562196) | Cod sursa (job #2372190) | Cod sursa (job #2170184) | Cod sursa (job #1769211) | Cod sursa (job #973464)
Cod sursa(job #973464)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
long long quick_sort(int a[600001] , int n);
long long partition(int a[600001] , int left , int right);
long long quick_sort(int a[600001] ,int n)
{
return partition(a,0,n-1);
}
long long partition(int a[600001] , int left , int right)
{
if(right > left ){
long long aa,b,c;
int p = a[left] , i = left;
aa = right - left;
for(int j=left;j<=right;j++){
if(a[j] < p){
swap(a[++i],a[j]);
}
}
swap(a[left],a[i]);
b = partition(a,left,i-1);
c = partition(a,i+1,right);
return aa+b+c;
}else
return 0;
}
int main()
{
int n , i=0;
int a[600001];
in>>n;
for(i=0;i<n;i++)
in>>a[i];
quick_sort(a,i);
for(int j=0;j<i;j++)
out<<a[j]<<" ";
return 0;
}