二分法查找

it2022-05-05  170

二分法查找

必须是排好序的数组

1、先把要查找的数value与数组中间的值arr[mid]比较,若value=arr[mid],返回value即可;

2、若value>arr[mid],low=mid+1;

3、若value<arr[mid],high=mid-1;

4、若没有查找到,返回-1.

package holiday.day03; import java.util.Arrays; public class TestBinarySearch { public static void main(String[] args) { int[] arr = {1,3,7,9,4,6,5,8,}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); System.out.println(myBinarySearch(arr,7)); } public static int myBinarySearch(int arr[], int value){ int low=0; int high=arr.length-1; while (low<=high){ int mid=(low+high)/2; if(arr[mid]==value){ return mid; } if(value<arr[mid]){ high=mid-1; } if(value>arr[mid]){ low=mid+1; } //System.out.println("#####"); } return -1; } }

 


最新回复(0)