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));
        }
    
    }
  • 相关阅读:
    Java框架之Mybatis(一)
    Java框架之Hibernate(四)
    Java框架之Hibernate(三)
    递归与分治
    散列
    绪论
    系统的分类(二)
    系统的定义与分类(一)
    Guess My Number 游戏
    2.5 随机数的生成
  • 原文地址:https://www.cnblogs.com/liuzhenping/p/7581517.html
Copyright © 2011-2022 走看看