#include <stdio.h>
int main()
{
int i,j,a[10];
int mid,low,high,temp;
srand((unsigned int) time(0)); //随机种子
//随机数组
for(i = 0;i < 10;i++)
{
a[i] = rand() % 100;
}
for(i = 0;i < 10;i++)
{
printf("%4d",a[i]);
}
printf("\n");
//二分
for(i =1;i < 10;i++)
{
low = 0;
high = i - 1; //上下界初值
while(low <= high)
{
mid = (low + high) / 2;
if(a[mid] >= a[i])
high = mid - 1;
else
low = mid + 1;
}
//小于已排好序的数放置
if(a[low] > a[i])
{
temp = a[i];
for(j = i - 1;j >= low;j--)
{
a[j + 1] = a[j];
}
a[low] = temp;
}
}
for(i = 0;i < 10;i++)
{
printf("%4d",a[i]);
}
printf("\n");
return 0;
}