zoukankan      html  css  js  c++  java
  • 二分查找法(Java实现)

    package sort;
    
    import java.util.Arrays;
    
    public class SearchUtils {
        public static void main(String[] args) {
            int[] arr = { 54, 26, 93, 17, 77, 31, 44, 55, 20 };
            // 二分查找要求数组有序
            SortUtils.quickSort(arr, 0, arr.length - 1);
            System.out.println(binarySearch(arr, 55));
            System.out.println(binarySearch2(arr, 78));
        }
    
        // 二分查找————递归实现
        public static boolean binarySearch2(int[] arr, int item) {
            int first = 0;
            int last = arr.length - 1;
            if (first >= last) {
                return false;
            } else {
                int mid = (first + last) / 2;
                if (arr[mid] == item) {
                    return true;
                } else if (arr[mid] > item) {
                    return binarySearch(Arrays.copyOfRange(arr, first, mid - 1), item);
                } else {
                    return binarySearch(Arrays.copyOfRange(arr, mid + 1, last), item);
                }
            }
        }
    
        // 二分查找————非递归实现
        public static boolean binarySearch(int[] arr, int item) {
            int first = 0;
            int last = arr.length - 1;
            while (first <= last) {
                int mid = (first + last) / 2;
                if (arr[mid] == item) {
                    return true;
                } else if (arr[mid] > item) {
                    last = mid - 1;
                } else {
                    first = mid + 1;
                }
            }
            return false;
        }
    }
  • 相关阅读:
    TF利用分布式队列控制线程
    非随机的抽样
    代码杂谈-split函数
    beta函数与置信度估计
    tensorflow模型
    SQL的技巧
    tensorflow输入数据处理
    flink学习
    Python
    通过淘宝IP地址库获取IP位置
  • 原文地址:https://www.cnblogs.com/tangxlblog/p/9946932.html
Copyright © 2011-2022 走看看