美文网首页
算法图解-二分查找

算法图解-二分查找

作者: YCzhao | 来源:发表于2018-10-25 14:30 被阅读0次
  1. 二分查找是一种算法,其输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null。
    image.png
  2. 代码实现如下
def binary_search(list, item):
    low = 0
    high = len(list) - 1
    while low <= high:
        mid = (low + high)
        guess = list[mid]
        if guess == item:
            return mid
        if guess > item:
            high = mid - 1
        else:
            low = mid + 1
    return None

mylist = [1, 3, 5, 7, 9]
print(binary_search(mylist, 3))
print(binary_search(mylist, -1))
  1. 大O表示法是一种特殊的表示法,指出了算法的速度有多快。
    下面按从快到慢的顺序列出了你经常会遇到的5种大O运行时间。
    • O(log n),也叫对数时间,这样的算法包括二分查找。
    • O(n),也叫线性时间,这样的算法包括简单查找。
    • O(n * log n),这样的算法包括第4章将介绍的快速排序——一种速度较快的排序算法。
    • O(n2),这样的算法包括第2章将介绍的选择排序——一种速度较慢的排序算法。
    • O(n!),这样的算法包括接下来将介绍的旅行商问题的解决方案——一种非常慢的算法。


      绘制网格时间.png
    • 算法的速度指的并非时间,而是操作数的增速。
    • 谈论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加。
    • 算法的运行时间用大O表示法表示。
    • O(log n)比O(n)快,当需要搜索的元素越多时,前者比后者快得越多。

相关文章

  • python 算法开发笔记

    前言 最近看完《算法图解》对python的算法有点了解,特记录下来 算法概括 二分查找的速度比简单查找快得多 算法...

  • 数据结构与算法

    参考文档《算法图解》《计算机算法设计与分析》 简单查找 时间复杂度 空间复杂度 java Demo 二分查找 时间...

  • 《算法图解》之二分查找与快速排序

    说明:以下内容均参考:[美]Aditya Bhargava所著的《算法图解》 第一种使用的算法:二分查找。 二分查...

  • 数据结构和算法--二分查找

    二分查找 二分查找的思想 二分查找(Binary Search)算法,也叫折半查找算法。 二分查找针对的是一个有序...

  • 数据结构与算法系列——二分查找

    二分查找算法的简单介绍 今天我们来学习一下二分查找算法,也叫做折半查找算法。使用二分查找算法的前提是数据需要是有序...

  • 《算法图解》读书笔记

    《算法图解》读书笔记 二分查找 算法实现: ​ 在有序列表中查找一个数,每次都与有序列表的中间数比较,如果不同...

  • 算法图解一(二分查找)

    今天主要跟大家分享二分查找算法。 有兴趣的朋友的可以去阅读《算法图解》这本书。 首先说下什么是算法。 算法定义: ...

  • 算法

    一.算法基础--算法的特性 二.算法基础--算法的复杂度 三.顺序查找和二分查找 顺序查找 二分查找(前提是有序的...

  • 算法图解-二分查找

    二分查找是一种算法,其输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null...

  • 可查找重复元素的二分查找算法

    可查找重复元素的二分查找算法 二分查找算法思想:又称为 折半查找,二分查找适合对已经排序好的数据集合进行查找。假设...

网友评论

      本文标题:算法图解-二分查找

      本文链接:https://www.haomeiwen.com/subject/zbaqtqtx.html