• 二分查找


    0.关于二分查找:

      1.二分查找作为一种常见的查找算法,将原本的线性时间提升到了对数的范围,大大缩短了搜索的时间,但是有一个前提,那就是必须是在有序的数据中进行查找。

      2.算法思想:二分查找又叫做折半查找。每次取出中间未知的值与待查的关键字进行比较,如果中间位置的关键字比待查关键字大,则在前半部分循环这个查找的过程,如果中间关键字比待查关键字小,那么就在后半部分循环查找过程。知道查找到了为止,否则序列中没有待查关键字

    1.最基本的二分查找

    import java.util.Scanner;
    
    public class binarySearch {
        public static void main(String[] args) {
           //下面作为用力输入进行测试
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个有序数组容量:");
            int a = sc.nextInt();
            System.out.println("请输入一个有序数组:");
            int[] b = new int[a];
            for (int i = 0 ; i < a ; i++){
                b[i]=sc.nextInt();
            }
            System.out.println("请输入要进行查找的值:");
            int target = sc.nextInt();
            System.out.println("搜索结果:"+search(b,target));
    
        }
        public static  int search(int[] A,int target){
            int low = 0;
            int high=A.length-1;
            int mid;
            while (low<=high){
                mid = (low+high) /2;
                if(A[mid]==target){
                    return mid;
                }else if(A[mid]>target){
                    high=mid-1;
                }else {
                    low = mid +1;
                }
            }
            return -1;
        }
    }

    时间复杂度为O(logn)

  • 相关阅读:
    rabbitmq 公平分发和消息接收确认(转载)
    rabbitmq 配置多个消费者(转载)
    Spring整合rabbitmq(转载)
    rabbitmq 一些属性
    rabbitmq 持久化 事务 发送确认模式
    TCP中的长连接和短连接(转载)
    rabbitmq 概念
    ZooKeeper介绍(转载)
    npm install 安装依赖报错解决
    ubuntu下安装node.js教程
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/10463954.html
Copyright © 2020-2023  润新知