【查找算法】之折半查找

折半查找(Binary Search)又称为二分查找,其要求数据序列呈线性结构,也就是经过排序的数据序列。可以使用冒泡排序、快速排序等排序算法,先进行一次排序。

import java.util.*;

public class Main {
	static final int N=5;
	public static void main(String[] args){

		int[] shuzu = {2,8,14,25,36};
		
		
		for(int k=0; k<N; k++){
			System.out.println(shuzu[k]);
		}
		int index = BinarySearch(shuzu, N, 36);
		System.out.println(index);
	}
	
		
	public static int BinarySearch(int arr[], int n, int target){
		int low , mid, high;
		low =0;
		high = n-1;
		
		while(low <= high){
			mid = (low + high)/2; //找到中间位置元素的下标
			if(arr[mid] == target){
				return mid;//找到返回 下标
			}else if(arr[mid] > target){
				high = mid-1;//查找左半部分
			}else if(arr[mid] < target){
				low = mid +1; // 查找右半部分
			}
		}
		
		
		return -1;
	}
}

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