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));
        }
    
    }
  • 相关阅读:
    误卸载python2.4导致yum不能用后的修复
    网卡流量查看软件bmon
    DTD约束
    Schema约束
    SAX解析原理示意
    DOM解析原理示意
    XML中文乱码问题
    Web应用的目录结构
    手动+工具开发动态资源
    Tomcat服务器的下载及安装
  • 原文地址:https://www.cnblogs.com/liuzhenping/p/7581517.html
Copyright © 2011-2022 走看看