简单查找

 · 2019-8-24 · 次阅读


顺序查找

  package cn.srclove;

  public class order {
     public static void main() {
        int[] arr = {1,2,3,4,5,6,7,8};
        int index = 0;
        for(int i = 0; i < arr.length; i++) {
           if(arr[i] == 5) {
              index =arr[i];
           }
        }
        System.out.println("对应的索引为:"+index);
     }
  }

二分查找法

有序数组

  //循环
  package cn.srclove;

  public class binary {
     public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6,7,8};
        int index =binarySearch(arr,1);
        System.out.println(index);
     }
     public static int binarySearch(int[] arr,int item ) {
        int low = 0;
        int high = 0;
        int index = -1;
        int mid = (low + high)/2;

        int guess =arr[mid];
        while(low <= high) {

           if(guess == item) {
              index = mid;
              break;
           }
           if(guess > item) {
              high = mid - 1;
           }
           if(guess < item) {
              low = mid + 1;
           }
        }
        return index;
     }
  }

递归

// Array.sort(arr);
//Array.binarySearch(arr,item)