Pagini recente » Cod sursa (job #1528696) | Cod sursa (job #2477112) | Cod sursa (job #2904032) | Cod sursa (job #1172003) | Cod sursa (job #1419840)
#include <fstream>
#define nmax 500000
using namespace std;
int v[nmax],n;
int pivot(int (&v)[nmax],int st,int dr) {
int di=1,dj=0,i=st,j=dr;
while (i<j) {
if (v[i]>v[j]) {
swap(v[i],v[j]);
swap(di,dj);
}
i+=di;
j-=dj;
}
}
void quick_sort(int (&v)[nmax],int st,int dr) {
if (st<dr) {
int p=pivot(v,st,dr);
quick_sort(v,st,p-1);
quick_sort(v,p+1,dr);
}
}
void readData(int (&v)[nmax],int &n) {
ifstream r("algsort.in");
r>>n;
for (int i=0;i<n;i++)
r>>v[i];
r.close();
}
void writeData(int (&v)[nmax],int &n) {
ofstream w("algsort.out");
for (int i=0;i<n;i++)
w<<v[i]<<" ";
w.close();
}
int main() {
readData(v,n);
quick_sort(v,0,n-1);
writeData(v,n);
}