折半插入排序算法代码:
#i nclude "stdafx.h"
#i nclude "iostream"
using namespace std;
void Insert(int a[],int n)
{
int low,high,i,j,mid,t;
for(i=1;i<n;i++)
{
t=a[i];
low=0;
high=i-1;
while(low<=high)
{
mid=(low+high)/2;
if(t>a[mid])
low=mid+1;
else
high=mid-1;
}
for(j=i-1;j>=high+1;j--)
{
a[j+1]=a[j];
}
a[j+1]=t;
}
}
void main(void)
{
int b[10],i;
cout<<"输入一个数组:"<<'\n';
for(i=0;i<10;i++)
cin>>b[i];
cout<<"这个数组是:"<<'\n';
for(i=0;i<10;i++)
cout<<b[i]<<'\t';
Insert(b,10);
cout<<"结果是:"<<'\n';
for(i=0;i<10;i++)
cout<<b[i]<<'\t';
cout<<'\n';
system("pause");
}