Mai intai trebuie sa te autentifici.
Cod sursa(job #1553555)
| Utilizator | Data | 20 decembrie 2015 00:54:03 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.74 kb |
#include <fstream>
#include <ctime>
#include <cstdlib>
using namespace std;
int a[100];
ifstream f("algsort.in");
ofstream g("algsort.out");
int partitie(int st, int dr){
int pindex,i,y;
srand(time(NULL));
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;
for(i=1;i<=n;i++) f>>a[i];
quicksort(1, n);
for(i=1;i<=n;i++) g<<a[i]<<" ";
return 0;
}
