现在的位置: 首页 > 综合 > 正文

编程一天一练——折半插入排序

2013年08月01日 ⁄ 综合 ⁄ 共 329字 ⁄ 字号 评论关闭
#include<iostream>
using namespace std;
int main()
{
	int i,j,mid,n,temp,high,low;
	int a[1000];
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>a[i];
	}
	for(i=1;i<n;i++)
    {
		low=0;
		high=i;
		temp=a[i];
		while(low<high)
		{
			mid=(low+high)/2;
			if(temp>a[mid])
				low=mid+1;
			else
				high=mid;
		}
		for(j=i;j>low;--j)
		{
			a[j]=a[j-1];
		}
		a[low]=temp;
    }
	for(i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
	cout<<endl;
	return 0;
}

抱歉!评论已关闭.