二分查找

Posted lxc1910

tags:

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

 1 int inSearch(int a[], int size, int b)
 2 {
 3     int mid = -1, i = 0, j = size - 1;
 4     while(i <= j)
 5     {
 6         mid = (i + j) / 2;
 7         if (b > a[mid])
 8             i = mid + 1;
 9         else if (b == a[mid])
10             break;
11         else
12             j = mid - 1;
13     }
14     if (i <= j)
15         return mid;
16     else
17         return -1;
18 }

注意while循环判断条件是 i <= j。如果是 i < j 的话,当i,j指向一个元素时会不满足条件跳出循环。

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

java 二分查找法

代码题(12)— 二分查找

二分查找代码

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

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

C语言二分查找