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

    public class BinarySearch {
        //递归
        public static int findData(int[] a, int b, int beginIndex, int endIndex) {
            if(a.length == 0 || a == null) {
                return 0;
            }
            int length = (beginIndex + endIndex)/2;
            if(b == a[length]) {
                return length;
            }else if(b < a[length]) {
                return findData(a, b,  beginIndex, length-1);
            }else {
                return findData(a, b, length+1, endIndex);
            }
        }
        
        //非递归
        public static int findData2(int[] a, int des) {
            int left = 0 ;
            int right = a.length -1;
            while(left <= right) {
                int middle = (left + right)/2;
                if(des == a[middle]) {
                    return middle;
                }
                if (des > a[middle]) {
                    left = middle + 1;
                }
                if(des < a[middle]) {
                    right = middle - 1;
                }
            }
            return -1;
        }
        
        //测试
        public static void main(String[] args) {
            int a[] = {1,5,8,9,8};
            System.out.println(a.length);
            int b = 9;
            int des = 7;
            //int ret = findData(a, b, 0, a.length-1);
            int ret = findData2(a, des);
            System.out.println(ret);
        }
    
    }
  • 相关阅读:
    Daily Scrum
    Daily Scrum
    Daily Scrum
    Daily Scrum
    Daily Scrum
    bing背单词交互流程
    立会2015-11-23
    每日例会11.16
    每日立会2015-11-11
    单词挑战设计0.1
  • 原文地址:https://www.cnblogs.com/leehfly/p/5228643.html
Copyright © 2011-2022 走看看