基础算法:二分查找

什么是二分查找?

我们先来看看什么是顺序查找。

假设有一个长度为5的数组s=[0,1,4,5,3]中寻找一个数字5

1.顺序查找是通过,数组索引从小到大实现寻找的过程。

但是假如数组的数值很多的话,顺序查找的效率就会很低。

2.二分查找是定义一个mid来存储中间位置。 mid=(left+right)/2

left存储左边位置,right存储右边位置。

要寻找的数字与mid进行比较

如果target大于mid那么left=mid+1

如果target小于mid那么right=mid-1

其中循环条件是left<=right(当发现数组中没有要寻找的,可以跳出循环)

以下是具体的代码片段

package 二分查找;

public class Main {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        int target=3;
        int left=0;
        int right=arr.length-1;
        while(left<=right)
        {
            int mid=(left+right)/2;
            //如果target大于mid那么left=mid+1
            if(target>arr[mid])
            {
                left=mid+1;

            }
            //如果target小于mid那么right=mid-1
            if (target

你可能感兴趣的:(算法,数据结构)