应用二进制搜索以使用递归合并排序组合两个已排序的子数组:

void combine(int a[],int low,int mid,int high)
{
int temp[50],i,j,k;
i=low;
j=mid+1;
k=0;
int m=(low+mid)/2;
while(i<=mid&&j<=high)
{
    if(a[m]<a[j])
    {
        for(i=low;i<=m;i++)
        {
            temp[k]=a[i];
            k++;
        }
        low=mid+1;
        j++;
        m=(low+mid)/2;
    }
    else
    {
            high=m-1;
            m=(low+mid)/2;
}

Above Function是执行二进制搜索并合并到已排序的子数组这里的子数组是:
1)a [low]到[mid]
2)a [mid 1]到[high]