zoukankan      html  css  js  c++  java
  • 二分查找

    二分查找

    相似题型(瞎编)

    题目描述

    给你一个有序的数列(A,长度为n),再给你一个数(x),输出这个数的位置(不重复出现此数)。

    样例输入

    7
    1 3 4 5 7 8 10
    7

    样例输出

    5

    思路

    类似这样的题型,我们第一个想到的,是枚举,将1~n扫一遍。这种方法,时间复杂度为O(n),题目数据大时会炸掉(并非指此题,此题也许只是一个大题中的一小部分嵌入这个算法。此题数据大时连输入也超时,别跟我提读入优化,我连这东西能不能吃都不知道

    内容

    二分查找是分治算法的一种(我其实并不熟练)。主要思想是,将一个区间分成两段,把其中一段排除,取更优的一段。将这一段再进行同样的操作,直到此区间变为一点。
    二分基本思路
    首先指定一个区间(l~r),这区间是要有序(我们这里先假设从小到大)的。你要查找一个数,就从中间分,mid=(l+r)/2。如果A[mid]正好就是你要查找的数,则mid就是它的位置。当A[mid]>x时,说明x的位置在mid左侧,我们就不用找右侧了

  • 相关阅读:
    同志们的毒害1_xuhang01
    2019佳木斯集训 Day8
    2019佳木斯集训 Day7
    2019佳木斯集训 Day6
    2019佳木斯集训 Day5
    数据结构——关于倍增LCA那点事
    2019佳木斯集训 Day3
    2019佳木斯集训 Day4
    centos7安装python2 sybase相关依赖
    mac与centos终端快捷指令
  • 原文地址:https://www.cnblogs.com/jz-597/p/11145320.html
Copyright © 2011-2022 走看看