zoukankan      html  css  js  c++  java
  • C++实现递归版二分搜索算法

    无聊撸了一个,没啥技术含量,别吐槽。。

    #include <iostream>
    using namespace std;
    int BinarySearch(int* nums,int key,int len);
    int search(int* nums,int key,int L,int R);
    
    int main()
    {
        int *nums;
        int length;
        int keyNum;
        cout<<"请输入你希望的数字个数:"<<endl;
        cin>>length;
        nums = new int[length];
        cout<<"请输入"<<length<<"个数:"<<endl;
        for(int i=0;i<length;i++)
            scanf("%d",&nums[i]);
        cout<<"输入你想找的数字::"<<endl;
        while(cin>>keyNum){
            int result = BinarySearch(nums,keyNum,length);
            if(!(result==-1))
                cout<<"Position in array is: "<<result<<"
    "<<endl;
            else
                cout<<"Failed!"<<endl;
            delete[] nums;
            cout<<"请输入你希望的数字个数:"<<endl;
            cin>>length;
            nums = new int[length];
            cout<<"请输入"<<length<<"个数:"<<endl;
            for(int i=0;i<length;i++)
                scanf("%d",&nums[i]);
            cout<<"输入你想找的数字::"<<endl;
        }
        return 0;
    }
    
    int BinarySearch(int* nums,int key,int len){ //仅作为用户入口
        return search(nums,key,0,len);
    }
    
    int search(int* nums,int key,int L,int R){
        int mid = (L+R)/2;
        if(nums[mid]==key) return mid;   //递归基
        if(nums[mid]>key)
            return search(nums,key,L,mid-1);
        else if(nums[mid]<key)
            return search(nums,key,mid+1,R);
        return -1;   //如果失败了返回-1
    }
    

    OVER

  • 相关阅读:
    windows 下搭建安装 sass
    mac 下搭建安装 sass
    解决 document.getElementsByClassName 在 IE8 下的兼容下的问题
    placeholder颜色
    文本两端对齐
    css3之border-color
    pip 安装自己开发模块 边调试边修改
    Go语言格式化字符
    遍历修改django bootstrap form 为 django bootstrap3
    git 合并两个仓库
  • 原文地址:https://www.cnblogs.com/1Kasshole/p/9107732.html
Copyright © 2011-2022 走看看