二分(模糊)查找+插入

46 阅读1分钟

二分(模糊)查找+插入

#include <iostream>

using namespace std;

int search(int* nums, int numsSize, int target) {
    int left=0;int right=numsSize-1;
    while(left<=right)
    {
        int mid=left+(right-left)/2;
        if(target==nums[mid]) return mid;
        else if(target<nums[mid])
        {
            right=mid-1;
        }
        else
        {
            left=mid+1;
        }
    }
    return left;
}

int main()
{
    //原数组为a的前5个数,a的总长度为6
    //想插入的值:a[5]
       int a[]={1,2,4,5,9,3};

       cout<<"插入前的数组:";
       for(int i=0;i<6;i++)
        cout<<a[i]<<" ";
       cout<<endl<<endl;
       int loca=search(a,6,a[5]);
       cout<<"应改将a[5]插入到下标为"<<loca<<"的地方"<<endl<<endl;
       cout<<"插入后的数组:";




       //插入过程
       int temp=a[5];
       for(int s=5;s>loca;s--)
       {
           a[s]=a[s-1];
       }
       a[loca]=temp;




       for(int i=0;i<6;i++)
        cout<<a[i]<<" ";
    return 0;
}