Mai intai trebuie sa te autentifici.
Cod sursa(job #276953)
| Utilizator | Data | 11 martie 2009 13:54:19 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.78 kb |
#include <fstream>
using namespace std;
void swap(int &a,int &b){
int t=a;a=b;b=t;
}
int part(int array[],int left, int right){
swap(array[(left+right)/2],array[right]);
int index=left;
for(int i=left;i<right;i++){
if(array[i]<=array[right]){
swap(array[i],array[index]);
index++;
}
}
swap(array[right],array[index]);
return index;
}
void sort(int array[],int left,int right){
if(left<right){
int index=part(array,left,right);
sort(array,left,index-1);
sort(array,index+1,right);
}
}
int main(){
int n;
int v[500000];
ifstream in("algsort.in");
in>>n;
for(int i=0;i<n;i++){
in>>v[i];
}
in.close();
sort(v,0,n-1);
ofstream out("algsort.out");
for(int i=0;i<n;i++){
out<<v[i]<<' ';
}
return 0;
}
