• Java 二分法查找


    算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是有序不重复的。 基本思想:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功;若 x 小于当前位置值,则在数列的前半段中查找;若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止。

    假设有一个数组 { 1,2,3,4,5,6,7,8,9,10 },现要求采用二分法找出指定的数值并将其在数组的索引返回,如果没有找到则返回 -1。代码如下:

    public class DichotomySearch {
    	
    	
    	public static void main(String[] args) {
    		int [] a={1,2,3,4,5,6,7,8,9,10};
    		 System.out.println(dichotomy(a, 12));
    	}
    	
    	public  static int dichotomy(int [] a,int key){
    		int start =0;
    		int end=a.length-1;
    	while(start<=end){
    		int middle=(start+end)/2;
    		if(key<a[middle]){
    			end=middle-1;
    			
    		}else if(key>a[middle]){
    			start=middle+1;
    		}else {
    			return middle;
    		}
    	}
    	
    	return -1;
    	}
    
    }
    

      

  • 相关阅读:
    浅析跨域请求
    python虚拟环境--virtualenv
    centos7下使用yum安装pip
    centos下python安装与虚拟环境配置
    ES6基础语法
    CCI_chapter 19 Moderate
    CCI_chapter 16 Low level
    CCI_chapter 13C++
    CCI_chapter 8 Recurision
    LeetCode_Generate Parentheses
  • 原文地址:https://www.cnblogs.com/binggu/p/4532212.html
Copyright © 2020-2023  润新知