编程中十大常用算法:(一)二分查找算法
2020-04-22 13:02
281 查看
理论介绍
二分查找算法适用于在有序的数列中查找目标数据,若数列未排序,需先将数列进行排序之后在进行查找。
二分查找的时间复杂度为O(log2N),即查找到目标数据的位置最多只需log2N步。
代码实现(非递归)
对数列{1,4,7,14,19,54,102}进行二分查找,利用Java编程语言实现,代码如下:
package com.zq.ten_Algorithms; public class BinarySearchNoRecur { public static void main(String[] args) { //test int[] arr= {1,4,7,14,19,54,102}; int targetIndex=binarySearch(arr, 7); System.out.print("目标数据位置为:"+targetIndex); } public static int binarySearch(int[] arr,int target) { int left=0; int right=arr.length-1; while(left<=right) { int mid=(left+right)/2; if (arr[mid]==target) { return mid; //找到目标数据,返回数据下标 }else if (arr[mid]>target) { right=mid-1; //表明目标数据在数列的左半边,继续向左半边查找 }else { left=mid+1; //表明目标数据在数列的右半边,继续向右半边查找 } } return -1; //表示未找到目标数据 } }
查找结果
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 编程中十大常用算法:(二)分治算法
- 《每日编程》----《算法》----《一》----二分查找
- Java学习资料-Java常用算法-二分查找算法
- 常用算法整理:二分查找
- 五大常用算法(一) 分治算法(1) 二分查找
- 常用算法整理:二分查找
- 算法整理-二分查找列表最大值
- 【算法-查找之二】二分查找
- [数据结构与算法] : 二分查找
- 轻松看懂机器学习十大常用算法
- STL中二分查找相关算法(binary_search, lower_bound, upper_bound, equal_range)
- 详解常用查找数据结构及算法(Python实现)
- 学习R语言编程——常用算法——枚举法
- java常用的十大算法
- 第一个算法-简单不容易的二分查找
- 一些基本算法--归并两个数组,二分查找
- 轻松看懂机器学习十大常用算法
- 算法与数据结构(五)------二分查找
- 数学建模常用的十大算法
- 算法——二分查找