天天看點

折半插入排序算法

//折半插入排序算法

void BiInsertSort(int *Data,int n)

{

int i,j,low,high,mid,temp;

for(i=1;i<n;i++)//先确定第i個元素應插入的位置

{

temp=Data[i];

low=0,high=i-1;

while(low<=high)

{

mid=(low+high)/2;

if(temp<Data[mid])

high=mid-1;

else

low=mid+1;

}

for(j=i-1;j>=low;j--)

Data[j+1]=Data[j];

Data[j+1]=temp;

}

}

繼續閱讀