【查找算法】之折半查找

折半查找(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
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞