zoukankan      html  css  js  c++  java
  • 二分法查找

    算法描述:

      当数据量很大适宜采用该方法。采用二分法查找时,数据必须是排好序的。

      主要思想是:设查找的数组区间为array[low, high],中间索引 middle = (low + high)/2 ,设需要查找的数值为 value.  

        step1: 比较 value == array[middle],若相等,则返回索引:middle;若不相等,则进行下一步

               step2:若 value < array[middle] ,则 high = middle - 1;

               step3:若 value > array[middle],则 low = middle + 1;

               step4: middle = (low + high)/2;

               step5:当 low <= high,重复 step1~step4,直到找到,否则退出

    Java 代码:

    public class Test {
        public static int binary(int array[], int value) {
            int low = 0;
            int high = array.length - 1;
            int middle  = 0;
            while(low <= high) {
                middle = (low + high) / 2;
                if(value == array[middle]){
                    return middle;
                }
                if(value > array[middle]) {
                    low = middle + 1;
                }
                if(value < array[middle]) {
                    high = middle - 1;
                }
            }
            	return -1;
        	}
        public static void main(String[] args)
        {
            int arr[] = {1, 4, 5, 12, 15, 26, 37, 48, 59};
            int value = binary(arr, 12);
            System.out.println(value);
        }
    }
    // 运行结果:3
    

      

  • 相关阅读:
    电脑分屏鼠标移不到另一个电脑上
    jquery datetimepicker 配置参数
    js获取前n天或者后n天的天数
    mysql查看变量
    Underscore _.template 方法使用详解
    sql优化
    echart图表demo
    jquery预加载的几种例子
    树莓派搭建服务器
    Thymeleaf标签学习
  • 原文地址:https://www.cnblogs.com/bosongokay/p/6752893.html
Copyright © 2011-2022 走看看