数据结构---二分查找

xiaoxiao2025-05-18  33

//二分查找,大数据量,有序,数组,内存连续,按中间分割,取值比对,割去一半,     //复杂度:log对数(n/2k=1)     //内存消耗:越来越少   

public int search(int[] target, int value, int start, int end) {         int mid = (end + start) >> 1;         if (target[mid] == value) {             return mid;         } else if (target[mid] > value) {             return search(target, value, start, mid);         } else {             return search(target, value, mid, end);         }     }          public int search(int[] target, int value) {         

        int start = 0;         int end = target.length-1;         int mid = (end+start) >> 1;         while(target[mid]!=value){             if(target[mid]<value){                 start = mid;             }else{                 end = mid;             }             mid = (end+start) >> 1;         }         return mid;     }

    public static void main(String[] args) {         int[] target = { 1,22,55,66,88,96,100,102,899, 1000,1001, 1002,1023,1056,1089,1099 };         System.out.println(new test().search(target, 1000));         System.out.println(new test().search(target, 1000,0,target.length-1));     }

转载请注明原文地址: https://www.6miu.com/read-5030322.html

最新回复(0)