void halfsort(int a[])
{
int hight,low,mid,temp;
int i;
for(i=1;i<n;i++)
{
hight=i-1;
low=0;
temp=a[i];
while(hight>=low)//大于等于
{
mid=(hight+low)/2;
if(a[mid]>temp)
{
hight=mid-1;
}
else
{
low=mid+1;
}
}
for(int j=i-1;j>=low;j--)
{
a[j+1]=a[j];
}
a[j+1]=temp;
}
for(i=0;i<n;i++)
{
cout<<a[i]<<' ';
}
}
还有多处困惑:具体执行是如何的?为什么l>=r进行判定,为什么是j>=l;
https://www.cnblogs.com/sunbines/p/9158757.html