zoukankan      html  css  js  c++  java
  • 算法-二分法查询

    1、二分法查询

        public static void main(String[] args) {
            int[] array = new int[]{1, 4, 3, 2, 6, 5, 8, 9, 7};
            int target = 9;
            boolean flag = findTarget(target, array);
            System.out.println(flag);
        }
    
        public static boolean findTarget(int target, int[] array) {
            if (null == array || array.length == 0) {
                return false;
            }
            Arrays.sort(array); //排序从小到大
            int start = 0;
            int end = array.length;
            int mid = (start + end) / 2;
            while (true) {
                System.out.println(String.format("start:%s,end:%s,mid:%s", start, end, mid));
                if (start > end || mid >= array.length) {
                    return false;
                }
                if (array[mid] == target) {
                    return true;
                } else if (array[mid] < target) {
                    start = mid + 1;
                    mid = (start + end) / 2;
                } else if (array[mid] > target) {
                    end = mid - 1;
                    mid = (start + end) / 2;
                }
            }
        }
    

    认识不足,才可发展……

    如果转载,注明出处。

    缘于生活,而归于工作。本人所书,而意于分享。 如有转载,请注明出处! --活出自己范儿
  • 相关阅读:
    Gym
    UVALive
    UVALive
    UVALive
    UVALive
    Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset Trie
    HDU 5816 Hearthstone 概率dp
    欧几里德与扩展欧几里德算法(转)
    差分约束系统详解(转)
    2016年第七届蓝桥杯C/C++程序设计本科B组决赛
  • 原文地址:https://www.cnblogs.com/Small-sunshine/p/14575547.html
Copyright © 2011-2022 走看看