#include<stdio.h>
/**
* 折半插入排序算法 2018.07.22
*/
int main()
{
int array[10] = {10,1,3,2,75,1000,379,0,-1,10};
//插入排序算法下标从一开始
int i;
for(i=1;i<10;i++)
{
int start = 0;
int end = i-1;
int middle = 0;
int dist = array[i];
while(start <= end)
{
middle = (start + end) /2;
if(dist < array[middle])
{
end = middle-1;
}else{
start = middle+1;
}
}
for(int j=i;j>start;j--)
{
array[j] = array[j-1];
}
array[start] = dist;
}
for( i=0;i<10;i++)
{
printf("%d ",array[i]);
}
return 0;
}