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

    通过二分法判断一个元素是否在列表内,如果用循环遍历的方法去写的话,如果用文件过大,运算时间会很长

    二分查找. 每次能够排除掉一半的数据. 查找的效率非常高. 但是局限性比较大. 必须是有序序列才可以进行二分法查找

    解题思路,找到列表中最开始的索引以及最后一位数的索引,然后求中间值,用需要判断的值对比中间值,如果大于中间值,就在

    中间值+1索引位置找到最后一个,如果小于中间值.就在第一个索引位置到中间索引-1的位置.循环这种查找方法

    a = int(input("请输入一个数值:"))
    lst = [4, 56, 178, 253, 625, 1475, 2580, 3574, 15963]
    left = 0
    right = len(lst)-1
    while left <= right:
      mid = (left + right) // 2
      if a < lst[mid]:
        right = mid - 1
      elif a > lst[mid]:
        left = mid + 1
    else:
      print("找到了")
    break

  • 相关阅读:
    P2009 跑步
    P3916 图的遍历
    P2865 [USACO06NOV]路障Roadblocks
    P2820 局域网
    P2176 [USACO14FEB]路障Roadblock
    讨伐!数论
    网络流入门——EK算法
    最被低估的特质
    我的天哪我有博客了!
    Area POJ
  • 原文地址:https://www.cnblogs.com/lowen107/p/9910890.html
Copyright © 2011-2022 走看看