二分法查找(java实现)

查找一个数组元素的下标。

二分法适用于已经排好序的数组,定义两个变量,一个low,一个high,则mid=(low+high)/2

算法核心:

如果 value==arr[mid],中间值正好等于要查找的值,则返回下标,return mid;

如果 value

如果 value>arr[mid],要找的值大于中间的值,则再往数组的大端找,low=mid+1;

源程序测试代码:

import java.util.Arrays;

/**
 * 测试二分法查找
 * 二分法适用于已经排好序的数组
 * @author Administrator
 *
 */
public class TestBinarySearch {
	public static void main(String[] args) {
		int[] arr= {30,20,50,10,80,9,7,12,100,40,8};
		Arrays.sort(arr);
		System.out.println(Arrays.toString(arr));
		System.out.println(myBinarySearch(arr,40));
		}
	
	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(value==arr[mid]) {
				return mid;
				}
			if(value>arr[mid]) {
				low=mid+1;	
			}
			if(value

测试结果:

二分法查找(java实现)_第1张图片

 

你可能感兴趣的:(JAVASE基础学习)