二分查找算法实现思路及其代码演示

一、什么是二分查找?
打开百度查找一下,它会给你以下一段话:

二分查找也称折半查找(BinarySearch),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

从这段话,我们可以得到一个非常有价值的消息:

二分查找只适用于有序排列序列

什么意思呢?就是说你这个算法只能用于从大到小、或者从小到大排列好的有序序列。如果你存放数据的数组是无序的,那你首先还得给它排序一下。

二、二分查找算法的具体思路

首先如果我们有一个数组:
{1,8,10,89,1000,1214}

  1. 首先我们需要确认这个数组中间元素的数值。

    应该是 mid =(最左边的元素下标+最右边元素的下标)/ 2

  2. 这时候我们进行一个比较,如果 findVal > arr[mid] 那么就说明,你需要的元素在中间元素的右边,这时候你只需要向右遍历就可以了。

  3. 如果 findVal < arr[mid] 那么就说明,你需要的元素在中间元素的左边,这时候你只需要向左遍历就可以了。

  4. 如果findVal = arr[mid] 那么就说明,你找到这个元素了。

那么这时候可能就有人问,什么时候我们退出递归呢?

  1. 找到你需要的元素就结束递归。
  2. 递归完整个数组,还没有查找到目标元素,就要结束递归,当left > right 就需要进行退出。

整个思路流程相比其他算法,还是比较简单的,那么接下来我们就用代码进行演示一下吧。

三、二分查找算法的代码演示

在这里插入图片描述
二分查找的代码实现如上图所示~

逻辑相对来说,也不是很难~

大家一起加油呀~

猜你喜欢

转载自blog.csdn.net/qq_45637283/article/details/106175726