• 二分查找法


     

     二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

    1.在一个有序的数组里(一般是从小到大排序)查找所在值的位置,并返回其所在的下标;如果数组中没有此数显示-1。

    2.一组混乱排序的数组可以通过Arrays.toString(数组名)来排序。

    3.当首尾相加超出int范围时 可以转化等式middle=(begin+end)/2为 middle= begin+(end-begin)/2;

    实例:

     1  public static void main(String[] args) {
     2     int[]arr=new int []{1,2,3,4,5,6};
     3     Scanner scanner=new Scanner(System.in);
     4     System.out.println("输入要查找的数:");
     5      int key=scanner.nextInt();
     6         int a= binarySearch(arr,key);
     7         System.out.println(a);
     8     }
     9     public static int binarySearch(int[]arr,int key ){
    10         int end=arr.length-1;int begin=0;
    11      while (begin<=end){
    12          int middle=(begin+end)/2;  // int middle=begin+(end-begin)/2; 防止首尾相加越界

    13 if(key==arr[middle]){
    14               return middle;
    15         }else if(key<arr[middle]){
    16              end=middle-1;
    17           }else {
    18              begin=middle+1;
    19           }
    20         }
    21         return -1;
    22     }
  • 相关阅读:
    multition pattern
    singleton pattern
    strategy pattern
    设置Activity的属性
    iphone自动旋转与调整大小
    游戏编程从哪里开始呢
    TTF字体文件使用
    TextMate介绍
    ios程序崩溃处理
    ios笔试题
  • 原文地址:https://www.cnblogs.com/jiezai/p/10635129.html
Copyright © 2020-2023  润新知