二分查找比较简单,直接上代码:

    1. package com.ruoyi.search;
    2. public class BinarySearch {
    3. public static void main(String[] args) {
    4. int[] arr = {12, 34, 56, 67, 78, 89, 90, 122, 125, 135};
    5. int i = binarySearch(arr, 78);
    6. System.out.println("i = " + i);
    7. }
    8. /**
    9. * 二分查找
    10. *
    11. * @param arr
    12. * @param target
    13. * @return
    14. */
    15. public static int binarySearch(int[] arr, int target) {
    16. int l = 0, r = arr.length - 1, m;
    17. while (l <= r) {
    18. m = (l + r) >>> 1;
    19. if (arr[m] == target) {
    20. return m;
    21. } else if (arr[m] > target) {
    22. r = m - 1;
    23. } else {
    24. l = m + 1;
    25. }
    26. }
    27. return -1;
    28. }
    29. }