zoukankan      html  css  js  c++  java
  • 九.查找算法

    一.二分查找

    1.非递归实现

    索引 while

    left<=right

     1     public static int binarySearch(int[] arr,int key) {
     2         int left=0;
     3         int right=arr.length-1;
     4         while(left<=right) {        // 小于等于<=
     5             int mid=(left+right)/2;
     6             if(key==arr[mid])
     7                 return mid;
     8             else if(key<arr[mid]) 
     9                 right=mid-1;
    10             else 
    11                 left=mid+1;
    12         }
    13         return -1;                    //没找到返回-1
    14     }

    2.递归实现(很有参考价值)

     1     public static int binarySearch2(int[] arr,int key,int left,int right) {
     2         int mid=(left+right)/2;
     3         
     4         if(left>right)    //递归结束条件
     5             return -1;
     6         if(key==arr[mid])
     7             return mid;
     8         else if(key<arr[mid]) 
     9             return binarySearch2(arr, key,left,mid-1);
    10         else
    11             return binarySearch2(arr, key, mid+1, right);
    12     }
  • 相关阅读:
    poj3481
    查找湖南问题
    tyvj1033
    tyvj1088
    oil倒油
    加分二叉树
    模拟题2
    模拟题3
    Free pascal中的random函数
    Spring MVC入门配置
  • 原文地址:https://www.cnblogs.com/midiyu/p/15194051.html
Copyright © 2011-2022 走看看