zoukankan      html  css  js  c++  java
  • 8.二分查找法

    1.思路分析

     2.代码实现

     1 //  二分查找法
     2 public class BinarySearch {
     3     public static void main(String[] args) {
     4         int[] arr = {1, 4, 7, 9, 11, 15, 22, 27, 33, 48, 50, 101};
     5         System.out.println(search(arr,101));
     6     }
     7 
     8     private static int search(int[] arr,int target) {
     9         return binarySearch(arr, 0, arr.length - 1, target);
    10     }
    11 
    12     private static int binarySearch(int[] arr, int left, int right,int target) {
    13         if(left > right)
    14             //  如果左下标大于右下标,说明没找到返回-1
    15             return -1;
    16         int mid = (left + right) / 2;
    17         if (target > arr[mid]) {
    18             //  目标在右半区,递归右半区
    19             return binarySearch(arr,mid + 1, right,target);
    20         } else if (target < arr[mid]) {
    21             //  目标在左半区,递归左半区
    22             return binarySearch(arr, right, mid - 1, target);
    23         } else
    24             return mid;
    25     }
    26 }
  • 相关阅读:
    POJ 3009
    POJ 3253
    POJ 3617
    POJ 3984
    UVA10012
    HDU5100
    HDU 5101
    UVA301 运输
    UVA 331 交换的方案数
    uva 10344 算23点
  • 原文地址:https://www.cnblogs.com/blogforvi/p/13863056.html
Copyright © 2011-2022 走看看