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. |
||||