二分查找

来源:互联网 发布:软件模块化设计缺点 编辑:程序博客网 时间:2024/06/06 09:42

二分查找又称为折半查找

优点:比较的次数少,查找的速度快,平均性能好
缺点:要求待查表示有序的,而且插入删除困难。因此折半查找方法不适合于经常变动的而查找频繁的有序表。

二分查找首先要求数据是有序的,同时要求能随机访问数据元素, 有序数组可以, 链表不行,二分查找因为每次都是从中间点开始查找,所以最坏情况是目标元素存在于最边缘的情况。最坏为O(LogN)

package dong.test;public class BinarySearch {    public static int Search(int arr[],int des){        int low = 0;        int high = arr.length - 1;        while((low<=high)&&(low<=arr.length-1)&&(high<=arr.length-1)){            //int middle = (low+high)/2;            // 防止极端情况下的整形溢出,使用下面的逻辑求出mid            int mid = low +(high-low)/2;            if(arr[middle]==des){                return middle;            }else if(des < arr[middle]){                high = middle -1;            }else{                low = middle +1;            }        }        return 0;    }    public static void main(String[] args){        int arr[] = {4,4,4,5,6,7,8};        int result = Search(arr,4);        System.out.println("查找元素所在的下标是:"+result);    }}
原创粉丝点击