20140527 希尔排序
#include<stdio.h>
#include<iostream>
using namespace std;
void ShellSort(int a[],int n)
{
int d, i, j, temp;
for(d=n/2;d>=1;d=d/2)
{
for(i=d;i<n;i++)
{
temp=a[i];
for(j=i-d;(j>=0)&&(a[j]>temp);j=j-d)
{
a[j+d]=a[j];
}
a[j+d]=temp;
}
}
}
void display(int a[],int n)
{
int i=0;
while(i<n)
{
printf("%d ",a[i]);
i++;
}
}
void main()
{
int a[]={3,2,4,7,5,9,6};
int length=sizeof(a)/4;
ShellSort(a,length);
display(a,length);
}

浙公网安备 33010602011771号