c_cpp 二分搜索是所有以比较为基础的搜索算法时间复杂度最低的算法。用二叉树描速二分查找算法,最坏情况下与二叉树的最高阶相同。比较二叉树线性查找也可用二叉树表示,最坏情况下比较次数为数组元素数量。任

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 二分搜索是所有以比较为基础的搜索算法时间复杂度最低的算法。用二叉树描速二分查找算法,最坏情况下与二叉树的最高阶相同。比较二叉树线性查找也可用二叉树表示,最坏情况下比较次数为数组元素数量。任相关的知识,希望对你有一定的参考价值。

//2d3 二分搜索技术
#include "stdafx.h"
#include <iostream>
using namespace std;

template<class Type>
int BinarySearch(Type a[],const Type& x,int n);

int main()
{
    int x = 6;
    int a[10];
    for(int i=0; i<10; i++)
    {
        a[i] = i + 1;
    }
    cout<<BinarySearch(a,x,10)<<endl;
    return 0;
}

template<class Type>
int BinarySearch(Type a[],const Type& x,int n)
{
    int left = 0;
    int right = n-1;
    while(left<=right)
    {
        int mid = (left + right)/2;
        if(x == a[mid])
        {
            return mid;
        }
        if(x>a[mid])
        {
            left = mid + 1;
        }
        else
        {
            right = mid - 1;
        }
    }

    return -1;
}

以上是关于c_cpp 二分搜索是所有以比较为基础的搜索算法时间复杂度最低的算法。用二叉树描速二分查找算法,最坏情况下与二叉树的最高阶相同。比较二叉树线性查找也可用二叉树表示,最坏情况下比较次数为数组元素数量。任的主要内容,如果未能解决你的问题,请参考以下文章

二分搜索基础算法

二分算法 原理 及 复杂度 详解

二分算法 原理 及 复杂度 详解

算法题解:二分查找算法(循环/递归)

二分查找算法

面试现场:手写二分查找算法