Pagini recente » Cod sursa (job #2970887) | Cod sursa (job #3266180) | Cod sursa (job #1231821) | Borderou de evaluare (job #3151569) | Cod sursa (job #1131762)
// Infoarena. Arhiva Educationala. Sortarea Prin Comparatie.
#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
void QuickSort(int *,int,int);
int Partition(int*,int,int);
int main(){
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int *A,n;
cin>>n;
A=new int[n+5];
for(int i=0;i<n;i++) cin>>A[i];
QuickSort(A,0,n-1);
for(int i=0;i<n;i++) cout<<A[i]<<" ";
}
void QuickSort(int *A,int start,int end){
if(start<end){
int pIndex=Partition(A,start,end);
QuickSort(A,start,pIndex-1);
QuickSort(A,pIndex+1,end);
}
}
int Partition(int *A,int start,int end){
int pivot=A[end];
int pIndex=start;
for(int i=start;i<end;i++){
if(A[i]<=pivot){
swap(A[i],A[pIndex++]);
}
}
swap(A[pIndex],A[end]);
return pIndex;
}