Pagini recente » Cod sursa (job #582712) | Cod sursa (job #1052719) | Cod sursa (job #3149781) | Cod sursa (job #2897555) | Cod sursa (job #1131747)
// Implementarea Algoritmului QuickSort.
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<algorithm>
using namespace std;
void q_sort(int *,int,int);
int pivot(int*,int,int);
int main(){
// freopen("algsort.in","r",stdin);
//freopen("algsort.out","w",stdout);
ifstream inFile("algsort.in");
ofstream outFile("algsort.out");
int *A,n;
inFile>>n;
A=new int[n+5];
for(int i=0;i<n;i++) inFile>>A[i];
sort(A,A+n-1);
for(int i=0;i<n;i++) outFile<<A[i]<<" ";
//outFile.close();
}
void q_sort(int *A,int st,int dr){
if(dr-st>1){
int pIndex=pivot(A,st,dr);
q_sort(A,st,pIndex-1);
q_sort(A,pIndex+1,dr);
}
}
int pivot(int *A,int st,int dr){
int p=st+rand()%(dr-st);
while(st<dr){
while(A[st]<A[p]) st++;
while(A[dr]>A[p]) dr--;
if(st==p) p=dr;
else p=st;
swap(A[st],A[dr]);
}
return p;
}