0
点赞
收藏
分享

微信扫一扫

算法讲解之二分查找法

算法学习篇一:二分查找法

声明

本文旨在记录自己学习算法期间对相关知识的理解与运用,因为博主也是学习者,如有与其他文章相同的地方,还望理解。

引言

我想大家对二分查找并不陌生,二分查找主要用于查找元素中的数组的位置,但从算法角度看,我们通过分析二分查找的过程,找到了数组中某个元素的位置。
但是我们应在理解算法的基础上,将二分查找算法应用具体的项目过程中去,这样,我们才真正的不止于学习,而且在不断的实践,这对能力的提升是很有帮助的。

二分查找详解

以一个具体的示例来看(经典力扣题
题目: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

输入: nums = [-1,0,3,5,9,12], target = 9     
输出: 4  

思路

解法一:数组指针,循环比较

  1. 得到数组的长度,作为循环的次数
  2. 定义一个指针指向数组首地址
  3. 从数组0地址开始,在循环中判断目标值与指针指向的数组元素是否相等,同时设一个变量,如果相等,用来记录当前元素的下标;否则,指针+1,直到循环结束。
  4. 返回下标值或者-1。

解法二:二分查找法

  1. 确定二分查找法的对象是有序数组,并且没有重复的元素,这两点很重要。
  2. 根据区间定义的不同,二分查找法分两种:左闭右闭[left,right];左闭右开[left,right)。
    (至于为啥没有其他的,比如左开等,原因就像你爬山,却没有山是一个道理)。
  3. 代码如下:
class makeup{
public}

未完,待续。。。

举报

相关推荐

0 条评论