首先,给大家介绍什么叫做二分查找(二分搜索)
二分搜索法:通过不断的缩小解可能存在的范围,从而求得问题最优解的方法。在程序设计中经常看到二分搜索和其他算法结合
下面我们将详细的介绍如何写好一个详细准确的二分查找的精准代码和相应的算法
题目1
从有序数组中查找某个值,返回该元素的下标
解析过程:例如我们给出一个有序的数组int ar[]={12,23,34,45,56,67,78,89,90},共n个元素,最基本的想法是我们取数组的中间元素ar[mid]=56与你要查找的元素x进行比较,当ar[mid]>x时,再从ar[0]-ar[mid]继续递归使用二分查找,反之,同理。
这是我们最基本的思路,那么首先我们怎么来确定这个中间元素呢??可能有人会给出这样的答案:我们首先用标记变量i,j分别指向数组的起始和末尾,那么mid=(i+j)/2,(这里是否会产生相应的问题呢?后面我将会进行作答)
相应的我们会给出最基本的代码,如下