zoukankan      html  css  js  c++  java
  • 折半查找

    二分查找又称折半查找,对于有序表来说,它的优点是比较次数少,查找速度快,平均性能好。

    二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x。

    二分查找的时间复杂度为O(logn)

    package bianchengti;
    /*
     * 折半查找
     * 给定有序查找表array 二分查找给定的值data
     * 查找成功返回下标 查找失败返回-1
     */
    public class QueryHalf {
        public static int BinSearch(int[] array, int data) {
    
            int low = 0;
            int high = array.length - 1;
    
            while (low <= high) {
    
                int mid = (low + high) / 2;
    
                if (data == array[mid]) {
                    return mid;
                } else if (data < array[mid]) {
                    high = mid - 1;
                } else {
                    low = mid + 1;
                }
            }
            return -1;
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int array[]= {1,2,3,5};
            System.out.println(BinSearch(array, 3));
        }
    
    }
  • 相关阅读:
    老齐所谓“你们强大的数学知识”
    Party解题报告
    maven配置mybatis忽略文件问题
    Log4J使用
    Mybatis的工具类
    MyBatis的BUG总结
    Mybatis核心配置文件
    JavaWebServletBUG总结
    浏览器同源策略问题解决方式
    Erlang语言之简述及安装
  • 原文地址:https://www.cnblogs.com/liuzhenping/p/7581517.html
Copyright © 2011-2022 走看看