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));
        }
    
    }
  • 相关阅读:
    pytorch空间变换网络
    Jittor 的Op, Var算子
    元算子卷积层实现
    Caffe实现概述
    Halide视觉神经网络优化
    旷视MegEngine数据加载与处理
    旷视MegEngine网络搭建
    旷视MegEngine基本概念
    Torchvision模型微调
    新的一天
  • 原文地址:https://www.cnblogs.com/liuzhenping/p/7581517.html
Copyright © 2011-2022 走看看