#include<stdio.h>
void binaryInsertion(int *a,int n)
{
int top,bottom,mid;
int i,j;
for(i=2;i<=n;i++)/*从第二个元素开始排序*/
{
top=1;
bottom=i-1;
a[0]=a[i];
while(top<=bottom)
{
mid=(top+bottom)/2;
if(a[0]<a[mid])
bottom=mid-1;
else
top=mid+1;
}
for(j=i-1;j>bottom;j--)/*从bottom指针后面的元素依次后移一位*/
a[j+1]=a[j];
a[top]=a[0];/*最后的插入位置在top指针处,即bottom指针后面*/
}
}
int main()
{
int arr[11];
int i;
for(i=1;i<=10;i++)
scanf("%d",arr+i);
binaryInsertion(arr,10);
for(i=1;i<=10;i++)
printf("%d ",arr[i]);
return 0;
}
08-12
1524

“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交