Virtual Object
::
Programs
:: Сортировка методом Хоара |
||||
Наша кнопка |
||||
Сортировка методом Хоара #include <fstream.h> #include <stdlib.h> int a[10001]; void sort(int l,int r) { int i,j,x,y,per; i=l; j=r; x=a[l+random(r-l)]; if (r-l<=4) { for(int i=1;i<=r-l+1;i++) for(int j=l;j<r;j++) if (a[j]>a[j+1]) { per=a[j]; a[j]=a[j+1]; a[j+1]=per; } } else { do { while (a[i]<x) i++; while (a[j]>x) j--; if(i<=j) { y=a[i]; a[i]=a[j]; a[j]=y; i++; j--; } } while(i<=j); if (l<j) sort(l,j); if (i<r) sort(i,r); } } void main() { int i,n; ifstream cin; ofstream cout; cin.open ("input.txt",ios::in); cout.open ("output.txt",ios::out|ios::trunc); for (i=1;i<=10001;i++) a[i]=0; cin >> n; for (i=1;i<=n;i++) cin >> a[i]; sort(1,n); for (i=1;i<=n;i++) cout << a[i] << endl; } |
||||
Object © 2004 - 2005. All rights reserved. |