zoukankan      html  css  js  c++  java
  • 对半搜索递归实现 C++

    把文字粘贴过来发现下标会乱掉,就存图了。


    对半查找递归实现函数:

    int Bsearch(int& x, int left, int right){
        if(left <= right){    			//若表(子表)非空 
            int m = (left + right)/2;   //对半分割 
            if(x == arr[m]) return m;   //搜索成功 
            else if(x < arr[m])
                return Bsearch(x, left, m-1);  //搜索左半子表 
            else 
                return Bsearch(x, m+1, right); //搜索右半子表 
        }
        return -1; //表示没查找到 
    }

    注意对半搜索要求数组有序,测试代码:

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int arr[6];
    int Bsearch(int& x, int left, int right){
        if(left <= right){    			//若表(子表)非空 
            int m = (left + right)/2;   //对半分割 
            if(x == arr[m]) return m;   //搜索成功 
            else if(x < arr[m])
                return Bsearch(x, left, m-1);  //搜索左半子表 
            else 
                return Bsearch(x, m+1, right); //搜索右半子表 
        }
        return -1; //表示没查找到 
    }
    //测试 
    int main(){
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        arr[3] = 6;
    	arr[4] = 10;
    	arr[5] = 8;
    	sort(arr, arr+6);   //对半查找要求数组有序 
        int sea;
        cout << "输入查找元素:"; 
        cin >> sea;
        if(Bsearch(sea, 0, 5) >= 0){
            cout << "该元素对应的下表是:" << Bsearch(sea, 0, 5) << endl;
            }
        else{
            cout << "数组中不存在该元素" << endl;
        }
        return 0;
    }


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    SpringBoot常用注解(二)
    SpringBoot常用注解(一)
    Spring Dl解释
    Spring 入门程序
    Spring 入门
    JUnit-4.13使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
    测试中Android与IOS分别关注的点
    python包中__init__.py的作用
    python自动发送测试报告(五)
    搭建一个有条理的项目(四)
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965261.html
Copyright © 2011-2022 走看看