zoukankan      html  css  js  c++  java
  • 二分查找代码

    也叫折半查找。

    优点:比较次数少,查找速度快,平均性能好。

    缺点:查找的数组必须为排序好的数组。

    时间复杂度:O(logN)

    代码:(递归:用栈保存结果空间消耗严重)

    #include <iostream>
    using namespace std;
    //二分查找  返回位置标号  时间复杂度O(logN)  
    int binarySearch(int list[],int left,int right,int number)
    {
        if(list==NULL)
            return -1;
        int index=0;
        int mid=(right+left)/2;
        if(left>right)
        {
            return -1;
        }
        if(number==list[mid])
        {
            index=mid;
            return index;
        }
        else if(number>list[mid])
        {
            binarySearch(list,mid+1,right,number);
        }
        else
        {
            binarySearch(list,left,mid-1,number);
        }
    }
    int main()
    {
        int a[]={1,3,5,7,9,11,14,16,17,20};
        int left = 0;
        int right = sizeof(a)/sizeof(a[0])-1;
        int index =binarySearch(a,left,right,88);
        cout<<index<<endl;
        return 0;
    }

    非递归:(能用循环不用递归)

    #include <iostream>
    using namespace std;
    //二分查找  返回位置标号  时间复杂度O(logN)  
    int binarySearch(int list[],int left,int right,int number)
    {
        if(list==NULL)
            return -1;
        while(left<right)
        {
            int mid=(right+left)/2;
            if(list[mid] == number)
            {
                return mid;
            }
            else if(number > list[mid])
            {
                left=mid+1;
            }
            else if(number < list[mid])
            {
                right=mid-1;
            }
        }
        return -1;
    }
    int main()
    {
        int a[]={1,3,5,7,9,11,14,16,17,20};
        int left = 0;
        int right = sizeof(a)/sizeof(a[0])-1;
        int index =binarySearch(a,left,right,11);
        cout<<index<<endl;
        return 0;
    }
  • 相关阅读:
    thinkphp url生成
    thinkphp url大小写
    thinkphp 伪静态
    thinkphp action参数绑定
    thinkphp 前置和后置操作
    thinkphp 控制器定义
    thingkphp 路由实例
    thinkphp 闭包支持
    thinkphp 静态路由
    thinkphp 正则路由
  • 原文地址:https://www.cnblogs.com/westlife-11358/p/9304118.html
Copyright © 2011-2022 走看看