{wyszukaj (inf 1. im p) |
if(A(j-lJ>A[j]) |
//1, p - to końce przedziału posortowania |
{x-A(jl; |
{ int s; |
A[j]=A{j-l]; |
if (p<l) return 0; s=(l+PV2; |
A[j-l)=x;} } |
if (T[s]= =x) return 1; |
babelki2() |
if (x<T[s]) wyszukaj (l.s-1); |
{int i.j.p,x; |
else renmi (wyszukaj (s+ l.p));} |
p=0; |
if (wyszukaj (0,n*l)= =1) return 1; |
while(p<n-l) |
eke return 0;} |
{p=n-l for (j=n-l;j>p:j—) |
Wyszukaj 3. |
if (A{j-lJ>A(j]) |
{ int wyszukaj(int l.int p) |
{x=A(jl; |
{int s: |
A0]=A(j-i]; |
while (p>=l) |
A[j-l]=x; |
{s=(l+pV2 if (x= =T[s>) return 1; |
p=j;> } ) |
if (x<T[s]) p=s-l; |
scalanie (int l,int p) |
eke l=s+l;} |
{int k.i.j.m: int B[n); |
return 0;}} |
if (1= =p) return; k=(l+p)/2; |
proste wstawianie{) |
scalanie(l.k); |
{int i,a.j; |
scalanie(k' l.p); |
for (i=l; i<n; i++) |
i=l m=0, |
{ a=A[ij; |
j=k+1; |
j=i-l; |
włiile((i<=k) && (j<=p)) |
while ((j>=0) && (A(jj>a)) |
if(A[i]<=A[j]) |
{AQ+l]=A[jl; |
{B[n]=A [i]; |
j--; |
m++; |
A{j+ l]=a;} } } |
i++;> else |
wstawianie połówkowef) |
{B[tn]=A{j]; |
{int i.j.a.l.p... |
m++; j++;} |
for (i=l; i<n; i++) |
if (i>k) |
U=A[il; |
while (j<=p) |
i=a. |
{B[m]=A[j]; |
p=i-l; |
m++; |
while (l<=p) |
j++;} |
if(a<=A0+PV2]) |
if(j>P) |
p=(l+p)/2-l; |
włiile (i<=k) |
eke l=(I+p)/2+l; |
{B[m]=A[i]; |
for (j=i-l; j>=Ł j~) |
m++; i++;} |
A(j+ l]=A[jj; |
for(m=l;m<=p;m+*) |
A0+1HW) |
A[m]=B[m];} } sortowanie przez stal ani e() {scal anie(0, n-1);} sortuj (int l,int p) {int x,z.i,j; x=A[(l-pV2]; i=t j=p: |
proste wybieranie |
włiile (i<=j) |
{int I.j,x,k; |
{wliile (A(iJ<x)i++; |
for (i=0; i<n-l; i++) |
włiile (A(j)>x) j--; |
{x=A [i]; |
if 0<=j) |
k=I; |
{z=A[i]; |
for (j=i+l; j<n; i++) |
A[i]=A[j]; |
if (A{jl<x) |
A[j]=z; |
fx-ADJ; |
i++; |
j-;> > | |
A(k]=A[ij; |
if (l<i) sormj(l.i); |
A[i]=x;> } } |
if (i+ l<p) sortuj (i+l.pU sortowanie szybkie () |
babdki() {for(i=0;i<n-l;i++) |
{sortuj (o.n-1);} |
for(j=n-1; j>i J—) |
przesiewanie (int 1, int p) |