m0_58698734 2021-05-27 18:21 采纳率: 100%
浏览 36
已采纳

C中二分查找法怎么写呀

二分查找法怎么写呀,在数组中找到指定的元素??? 救救孩子吧,刚学c语言

  • 写回答

6条回答 默认 最新

  • technologist_30 2021-05-27 18:22
    关注
    #include<iostream>
    #include<assert.h>
    using namespace std;
    int Search(int ar[], int n, int key)
    {
        int low = 0;//低位值
        int high = n-1;//高位值是元素个数-1
        int mid;
        while(low <= high)
        {
            mid = (low+high)/2;
            if(key < ar[mid])
            {
                high = mid-1;//二分
            }
            else if(key > ar[mid])
            {
                low = mid+1;//二分
            }
            else
                return mid;//找到值
        }
        return -1;//查找数据不存在
    }
    void main()
    {
        int ar[10] = {12,23,34,45,56,67,78,89,90,100};//这种算法只能在数组有序的情况使用,如果无序,先进行排序
        int n = sizeof(ar)/sizeof(int);
        int key;
        cout<<"请输入要查找的key值:>";
        cin>>key;
        cout<<"pos :> "<<Search(ar,n,key)<<endl;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?