编辑代码

#include <stdio.h>
void InsertSort(int nums[],int n)
{
    int i,j;
    for(i=2;i<n;i++)
    {
        if(nums[i]<nums[i-1]){
            nums[0]=nums[i];
            nums[i]=nums[i-1];
            for(j=i-2;nums[0]<nums[j];--j)
               nums[j+1]=nums[j];
            nums[j+1]=nums[0];
        }
    }
}
void BInsertSort(int nums[],int n)
{
    int i,j;
    for(i=2;i<n;i++)
    {
        nums[0]=nums[i];
        int low =1,high=i-1;
        while(low<=high)
        {
            int m=(low+high)/2;
            if(nums[0]<nums[m]) high=m-1;
            else low=m+1;
        }
        for(j=i-1;j>=high+1;--j)
               nums[j+1]=nums[j];
        nums[j+1]=nums[0];
    }
}

int BSearch(int nums[],int key,int n)
{
        int low =1,high=n-1;
        while(low<=high)
        {
            int m=(low+high)/2;
            if(key==nums[m]) return m+1;
            else if(key<nums[m]) high=m-1;
            else low=m+1;
        }
        return 0;
}




int main()
{
    int nums[]={0,9,8,7,6,5,4,3,2,88};
    int nums2[]={0,100,8,7,88,5,4,3,2};
    int n=10;
    int pos=BSearch(nums2,88,n);
    printf("%d\n",pos);
    BInsertSort(nums,10);
    for(int i=1;i<10;i++)
    {
        printf("%d ",nums[i]);
    }
    printf("\n");
    BInsertSort(nums2,n);
    for(int i=1;i<n;i++)
    {
        printf("%d ",nums2[i]);
    }
    
}