首页 > 编程语言 >二分查找算法

二分查找算法

时间:2023-12-26 18:13:23浏览次数:42  
标签:二分 int 复杂度 mid 算法 查找 low

Console.WriteLine($"二分查找{BinarySearch(3,new int[21]{1,3,5,6,7,8,9,10,10,11,12,13,14,15,17,18,19,20,21,22,23})}");
Console.ReadLine();
//有序序列二分查找
static int BinarySearch(int searchKey, int[] list)
{
    var low = 0;
    var high = list.Length;
    for (; low <= high;)
    {
        var mid = (low + high) / 2;
        if (list[mid] == searchKey)
        {
            return mid;
        }
        else if (list[mid] >searchKey)
        {
            high = mid - 1;
        }
        else if (list[mid] < searchKey)
        {
            low= mid + 1;
        }
    }
    return -1;
}

最好时间复杂度1,最坏时间复杂度logn;

空间复杂度n

标签:二分,int,复杂度,mid,算法,查找,low
From: https://www.cnblogs.com/lixiang1998/p/17928979.html

相关文章

  • 洛谷B3647 【模板】Floyd 题解 floyd算法 求 多源多汇最短路
    题目链接:https://www.luogu.com.cn/problem/B3647floyd算法:https://oi-wiki.org/graph/shortest-path/#floyd-算法示例程序:#include<bits/stdc++.h>usingnamespacestd;constintmaxn=101;intn,m,f[maxn][maxn];intmain(){scanf("%d%d",&n......
  • 动态规划算法(转)
    原文:https://blog.csdn.net/qq_50985215/article/details/125779794?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-125779794-blog-75193592.235^v39^pc_relevant_yljh&spm=1001.2101.3001.4242.1&utm_relevant_i......
  • json 数组查找数据的几种方式,包括模糊查找
    来源:http://www.shanhubei.com/archives/3418.html在JavaScript中,有几种常见的方式可以用来查找JSON数组中的数据。下面介绍了其中的几种方式:1.使用find()方法:find()方法用于在数组中查找满足指定条件的第一个元素,并返回该元素。它接受一个回调函数作为参数,该回调函数会......
  • 文件批量查找与复制
    文件批量查找与复制文件批量查找复制整理有现成的软件,可以在一堆文件中按文件名中关键字查找你需要的那些文件并全部整理复制到指定文件夹下 ......
  • DOM操作之元素查找
    通常我们操作一个元素节点前都需要查找到这个元素,查找到这个元素有两种方式。使用选择器函数查找元素通过元素的关系属性来查找元素使用选择器函数查找getElementById通过节点元素的ID得到此节点<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......
  • 升序数组的二分查找
    我买了⼀双鞋,你好奇问我多少钱,我说不超过300元。你还是好奇,你想知道到底多少,我就让你猜,你会怎么猜?你会1,2,3,4...这样猜吗?显然很慢;⼀般你都会猜中间数字,⽐如:150,然后看⼤了还是⼩了,这就是⼆分查找,也叫折半查找。首先我们通过分析可以知道二分查找的本质就是循环,对于一个升序数组,应先找......
  • 文心一言 VS 讯飞星火 VS chatgpt (165)-- 算法导论13.1 5题
    五、用go语言,证明:在一棵红黑树中,从某结点x到其后代叶结点的所有简单路径中,最长的一条至多是最短一条的2倍。文心一言:首先,我们要理解红黑树的性质。红黑树是一种自平衡的二叉查找树,它满足以下性质:每个节点或是红色,或是黑色。根节点是黑色。每个叶节点(NIL或空节点)是黑色。......
  • PacBio长读纠错算法主要包括以下几种:
    PacBio长读纠错算法主要包括以下几种:1.LoRDEC:该算法使用短读序列对长读进行纠错,通过比对短读到长读上,利用短读的高质量信息对长读中的错误进行校正[10]。2.Proovread:Proovread算法通过比对短读到长读上,利用短读的高质量信息对长读中的错误进行校正,同时还利用长读的信息对短读......
  • 以下是几种常见的PacBio长读纠错算法分类
     PacBio长读纠错算法可以根据不同的方法和策略进行分类。根据已有研究文献的描述,以下是几种常见的PacBio长读纠错算法分类:1.基于短读段的纠错算法:这类算法将同物种的短读段比对到长读段上,并利用能够比对上的、且错误率低的短读段来进行错误纠正[5]。2.基于短读段组装的纠错......
  • Python算法——树的最大深度和最小深度
    Python中的树的最大深度和最小深度算法详解树的最大深度和最小深度是树结构中的两个关键指标,它们分别表示树的从根节点到最深叶子节点的最大路径长度和最小路径长度。在本文中,我们将深入讨论如何计算树的最大深度和最小深度,并提供Python代码实现。我们将详细说明算法的原理和步骤。......