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));
        }
    
    }
  • 相关阅读:
    安装kafka
    linux安装jdk
    rabbitmq
    企业级docker镜像仓库----Harbor高可用部署
    kubernetes基础概念理解
    kubeadm安装kubernetes集群v1.14.3
    salt-stack深入学习
    salt-stack的数据系统Pillars
    salt-stack的数据系统Grains
    salt-stack
  • 原文地址:https://www.cnblogs.com/liuzhenping/p/7581517.html
Copyright © 2011-2022 走看看