#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define true 1
#define false 0
inline void Swap(int *a, int *b)
{
int c;
c=*a;
*a = *b;
*b = c;
}
void Bubblesort(int a[],int n)
{
int i,j;
for(i=0; i<n; i++)
{
for(j=1; j<n-i; j++)
{
if(a[j]>a[j-1])
Swap(&a[j],&a[j-1]);
}
}
}
void Bubblesort2(int a[],int n)
{
int j,k;
bool flag;
k=n;
flag=true;
while (flag)
{
flag=false;
for(j=1; j<k; j++)
if(a[j-1]>a[j])
{
Swap(&a[j-1],&a[j]);
flag=true;
}
k--;
}
}
void Insertsort(int a[],int n)
{
int i,j;
int tmp;
for(i=1; i<n; i++)
{
tmp=a[i];
for(j=i; j>0 && a[j-1]>tmp; j--)
{
a[j]=a[j-1];
}
a[j]=tmp;
}
}
void Shellsort(int a[],int n)
{
int i,j;
int gap;
int tmp;
for(gap=n/2; gap>0; gap/=2)
{
for(i =gap; i<n; i++)
{
tmp=a[i];
for(j=i; j>=gap; j-=gap)
{
if(a[j-gap]>tmp)
{
a[j]=a[j-gap];
}
else
break;
}
a[j]=tmp;
}
}
}
int main()
{
int a[13]= {2,4,70,97,127,304,67,77,81,83,99,10,209};
int b[6]= {1,2,51,7,9,11};
int c[19];
int i;
Shellsort(a,13);
for(i=0; i<13; i++)
printf("%d ",a[i]);
system("PAUSE");
return 0;
}
04-11
04-11