黑马程序员技术交流社区

标题: java二分查找法 [打印本页]

作者: 裤裆里的温柔、    时间: 2014-7-12 13:43
标题: java二分查找法
必须是有序的数组才能进行二分查找
  1. package cn.sunzn.dichotomy;

  2. public class DichotomySearch {
  3.    public static void main(String[] args) {
  4.        int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 };
  5.        System.out.println(search(arr, 12));
  6.        System.out.println(search(arr, 45));
  7.        System.out.println(search(arr, 67));
  8.        System.out.println(search(arr, 89));
  9.        System.out.println(search(arr, 99));
  10.    }

  11.    public static int search(int[] arr, int key) {
  12.        int start = 0;
  13.        int end = arr.length - 1;
  14.        while (start <= end) {
  15.            int middle = (start + end) / 2;
  16.            if (key < arr[middle]) {
  17.                end = middle - 1;
  18.            } else if (key > arr[middle]) {
  19.                start = middle + 1;
  20.            } else {
  21.                return middle;
  22.            }
  23.        }
  24.        return -1;
  25.    }
  26. }[b][/b]
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2