Pagini recente » Cod sursa (job #838649) | Cod sursa (job #2034770) | Cod sursa (job #1620175) | Cod sursa (job #994224) | Cod sursa (job #1553559)
#include <fstream>
#include <ctime>
#include <cstdlib>
using namespace std;
int a[500000];
ifstream f("algsort.in");
ofstream g("algsort.out");
int partitie(int st, int dr){
int pindex,i,y;
y=st+(rand()%(dr-st+1));
swap(a[y],a[dr]);
pindex=st;
for(i=st;i<=dr-1;i++){
if(a[i]<=a[dr]){
swap(a[i],a[pindex]);
pindex++;
}
}
swap(a[dr], a[pindex]);
return pindex;
}
void quicksort(int st, int dr){
int index;
if(st<dr){
index=partitie(st,dr);
quicksort(st, index-1);
quicksort(index+1, dr);
}
}
int main() {
int i,n;
f>>n;
srand(time(NULL));
for(i=1;i<=n;i++) f>>a[i];
quicksort(1, n);
for(i=1;i<=n;i++) g<<a[i]<<" ";
return 0;
}