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

    二分查找

    二分查找,其输入的是一组有序的列表。如果查找的元素在列表中,则返回元素的位置;否则返回null。

    二分查找:查找最多需要log n步。【对数是幂运算的逆运算】

    简单查:最多需要n步。

    python代码示例:

    def binary_search(list1, item):
       # low 和high用于跟踪查找部分
       low = 0
       high = len(list1) - 1

       # 只要范围没有缩小到只包含一个元素,就只检查中间的元素
       while low <= high:
           mid = (low + high) // 2
           guess = list1[mid]
           if guess == item:
               return mid
           if guess > item:
               high = mid - 1
           else:
               low = mid + 1
       return None

    T_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

    print(binary_search(T_list, 6))

    #5

    1.1 运行时间

    线性时间:猜测次数与列表长度相同

    二分查找:O(log n)

    简单查找:O(n)

  • 相关阅读:
    MyBatis
    JavaAgent
    Intellij IDEA
    SVN安装总结
    git(笔记)
    springboot面试题
    spring总结
    springmvc总结
    jdbc链接数据库
    redis面试题
  • 原文地址:https://www.cnblogs.com/qimingming/p/13293065.html
Copyright © 2011-2022 走看看