查找算法(1)--二分查找
简介: 二分查找算法是针对有序数组进行查找某个元素的算法,时间复杂度为Ο(logn) 。
一、主要步骤
有序数组arr(假设从小到大),待查找元素x
(1)、直接从中间一个元素开始找,mid = (0+arr.length)/2
(2)、如果arr[mid]大于x,说明目标索引在mid索引的左半边,把左边当作一个完整的数组继续查找
(3)、如果arr[mid]小于x,说明目标索引在mid索引的右半边,把右边当作一个完整的数组继续查找
(4)、如果arr[mid]等于x,那就找到了
二、代码实现
public int search(int[] arr,int x) throws Exception{ int start = 0; int end = arr.length-1; while(start<=end){ int mid = (start+end)/2; if(arr[mid]>x){ end = mid-1; }else if(arr[mid] == x){ return mid; }else if(arr[mid]<x){ start = mid+1; } } throw new Exception("not found"+x); }
相关推荐
faiculty 2020-08-20
wuxiaosi0 2020-06-28
数据与算法之美 2020-06-28
只能做防骑 2020-06-01
Codeeror 2020-04-20
数据与算法之美 2020-04-15
lickylin 2020-02-29
chenfei0 2020-02-26
baike 2020-02-03
ustbfym 2020-02-02
freedomfanye 2020-06-28
yaohustiAC 2020-06-11
Clairezz 2020-05-10
computermaths 2020-05-09
dushine00 2020-04-27
katyusha 2020-04-15
wulaxiaohei 2020-02-15
zangdaiyang 2020-01-29
Unimen 2020-01-11