二分查找

Posted Chaz_Sun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找相关的知识,希望对你有一定的参考价值。

二分查找序列必须基于已排序数组

二分查找的数组实现(c语言)

#include <stdio.h>

int Search(int * p,int n,int length) // n为查找的数字,length为数组长度
{
    if (length < 0 && p == NULL)
    {
        return -1;
    }

    int left = 0;
    int right = length - 1;

    while (left < right)
    {
        int middle;
        middle = (left + right)/2;
        if (p[middle] < n)
        {
            left = middle + 1;
        }else if (p[middle] > n)
        {
             right = middle - 1;
        }
        else
        {
            return middle;
        }
    }

    return 0;
}


int main()
{
    int a[8] = {1,2,3,4,5,6,7,8};    //必须基于已排序数组
    int res = Search(a,4,8);
    printf("%d\n",res);

    return 0;
}

 

以上是关于二分查找的主要内容,如果未能解决你的问题,请参考以下文章

java 二分查找法

代码题(12)— 二分查找

二分查找代码

PHP实现二分查找算法(代码详解)

「算法笔记」一文摸秃二分查找

C语言二分查找