1 package com.array; 2 3 public class BinaryFind { 4 /* 5 * 项目名称:二分查找 ; 6 * 项目要求:用JAVA对数组进行查找,并运用快速查找算法; 7 * 作者:Sevck; 8 */ 9 public void find(int leftIndex, int rightIndex, int val, int arr[]) { 10 // 首先找到中间的数 11 int midIndex = (leftIndex + rightIndex) / 2; 12 int midval = arr[midIndex]; 13 // 如果要找的数比midval大 14 if (rightIndex >= leftIndex) { 15 if (midval > val) { 16 // 在arr左边数中找 17 find(leftIndex, midIndex - 1, val, arr); 18 } else if (midval < val) { 19 // 在arr右边数中找 20 find(midIndex + 1, rightIndex, val, arr); 21 } else if (midval == val) { 22 System.out.println("找到下标" + midIndex); 23 } 24 } 25 } 26 27 public static void main(String[] args) { 28 int arr[] = { 2, 5, 7, 12, 55 }; 29 BinaryFind bf = new BinaryFind(); 30 bf.find(0, arr.length - 1, 12, arr); 31 } 32 }