java实现非递归版二分查找算法

1.介绍

二分查找算法就是从中间位置开始比较,然后就是分为小于中值区域Z1和大于中值的区域Z2,然后判断中值和查找的数,比中值小在Z1,大于中值在Z2,采用不断缩小搜索范围,然后确定。

2.实现

public class BinarySearch {

	public static int search(int key,int[] arr){
		int start=0;
		int end=arr.length-1;
		while(start<=end){
			int mid=start+(end-start)/2;
			if(key<arr[mid]){
				end=mid-1;
			}else if(key>arr[mid]){
				start=mid+1;
			}else{
				return mid;
			}
		}
		return -1;
	}
	
	public static void main(String[] args) {
		int arr[]={0,1,3,5,6,7,8,8,9};
		int resultPosition=search(3,arr);
		System.out.println("3这个所在位置:"+resultPosition);
	}
}

控制台结果:

3这个所在位置:2

    原文作者:查找算法
    原文地址: https://blog.csdn.net/ya_1249463314/article/details/52579153
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞