<pre name="code" class="cpp">//折半插入排序
#include<iostream>
using namespace std;
void BinInsertSort(int a[],int len)
{
int i,j,low,mid,high;
int temp;
for(i=1;i<len;i++)
{
if(a[i-1]>a[i])
{
temp=a[i];
low=0;
high=i-1;
while(low<=high)
{
mid=(low+high)/2;
if(temp<a[mid])
high=mid-1;
else
low=mid+1;
}
for(j=i-1;j>=high+1;j--)
a[j+1]=a[j];
a[j+1]=temp;
}
}
}
int main()
{
int a[]={2,5,-1,0,16,89,-32,-1,-4,90,0};
int len=sizeof(a)/sizeof(a[0]);
BinInsertSort(a,len);
for(int i=0;i<len;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
system("pause");
return 0;
}
C++折半插入排序
最新推荐文章于 2023-01-29 16:56:25 发布