在java中,我们常用的查找方法有两种: (1)顺序查找 (2)二分查找
/* * 作者:筱筱 * 功能:二分查找 */ public class binarySearch { public static void main(String[] args){ int arr[] = {1,3,5,7,9,11,13,15,17,19}; BinaryFind bf = new BinaryFind(); bf.find(0, arr.length, 15, arr); bf.find(0, arr.length, 10, arr); } } //二分法 class BinaryFind{ public void find(int leftIndex, int rightIndex, int val,int arr[]){ //首先找到中间的数 int middleIndex = (leftIndex+rightIndex)/2; int midval = arr[middleIndex]; if(rightIndex >= leftIndex){ if(val > midval){ //若值比中间的数大,则在数列的右侧找 find(middleIndex+1,rightIndex,val,arr); }else if(val < midval){ //若值比中间的数小,则在数列的左侧找 find(leftIndex,middleIndex-1,val,arr); }else if(val == midval){ System.out.println("找到下标为:"+middleIndex); } }else{ System.out.println("未找到相应值"); } } }