您的位置 首页 java

LeetCode基础算法题第120篇:二分查找算法

LeetCode 704. 二分查找 (Binary Search)

问题描述:

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

示例:

C语言实现:

二分查找是一个十分常用的算法,其实在前面的题目中我们已经用过这种算法。

本来不打算解这道题,但是还是觉得劲量不要遗漏的好。

对于新手来说,要提醒一下, 二分查找查找的前提是有序 数列 ,所以要操作的数列是一个无序的,要先排序。

我曾经就碰到过一个面试的,上来就二分查找,根本没有判断数组是否有序。

二分查找的思路非常简单,通常我们要定义两个整形变量left和 right ,分别保存数组的起始下标和末尾下标。

然后通过判断target与nums[(right+left)/2]的大小关系,来不断调整left和right的值,以此来不断的缩小查找的范围,最后得到结果。

具体代码如下:

Java语言的实现:

Java 的实现和C语言的实现基本一致,不再撰述。代码如下:

python语言的实现:

python 的实现和C语言的实现基本一致,不再撰述。代码如下:

文章来源:智云一二三科技

文章标题:LeetCode基础算法题第120篇:二分查找算法

文章地址:https://www.zhihuclub.com/199455.shtml

关于作者: 智云科技

热门文章

网站地图