二分查找、二叉搜索

来源:互联网 发布:三菱q系列plc编程手册 编辑:程序博客网 时间:2024/05/22 21:57

查找——折半查找(二分查找、二叉搜索)

简单的折半查找方法

public static int binSearch(int[] arr, int first ,int last, int target){    int mid;    int midValue;    while(first < last){        mid = (first + last) / 2;        midValue = arr[mid];//查找成功        if(target == midValue){            return mid;        }else if(target < midValue){            last = mid;        }else{            first = mid;        }    }    return -1;//查找失败}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

泛型二叉搜索方法

public static <T> extends Comparable<? super T>int binSearch(T[] arr, int first, int last, T target){    int mid;    T midValue;    while(first < last){        mid = (first + last) / 2;        midValue = arr[mid];        if(target.compareTo(midValue) == 0){            return mid; //查找成功        }else if(target.compareTo(midValue) < 0){            last = mid;        }else{            first = mid;        }    }    return -1; // 查找失败}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
原创粉丝点击