牛客图书馆 > 读书笔记
  • 算法_快速排序_python实现

    算法整理 # 快速排序算法实现 # 定义函数 def quicksort(array): # 设置基线条件 if len(array) < 2: # 符合条件,直接返回原数组 return array ...
    统计小白er 编辑于 2021-02-27 14:37:59
  • 算法图解 第七章(狄克斯特拉算法)笔记与习题

    7.1 狄克斯特拉(Dijkstra)算法 广度优先算法可以找出在 最短路径 ,而狄克斯特拉算法可以找出最快路径。 狄克斯特拉算法包含4个步骤:   (1) 找出最便宜的节点,即可在最短时间内前往的节点。   (2) 对于该节点的邻居,检查是否有前往它们的更短...
    虽然一刹花火 编辑于 2020-08-19 11:37:48
  • 关于散列(hash)及散列函数

    散列(hash哈希): 简单来说, 散列函数将输入映射到数字,给定同样的输入总是得到同样的结果,不需要查找(平均情况下性能:常量时间);关键在于散列函数。 (之前误以为就是把数组下标和值及其个数等对应,然后要得到某个值的时候,去for循环查数组,总...
    吖呀呀 编辑于 2022-10-09 14:49:52
  • 《算法图解》读书笔记-第4章

    快速排序 D&C(divide and conquer): 1.找出基线条件,应该比较简单 2.不断将问题分解(或者说缩小规模),直到符合基线条件 分地问题: 试用于这小块地的最大方块,也是试用于整块地的最大方块——均分为...
    Al泰 编辑于 2019-02-19 14:11:48
  • 《算法图解》读书笔记-第3章

    递归 def lookforkey(box): for item in box: if item. isabox(): lookforkey(item) elif item.isakey(): print"found a key!" ...
    Al泰 编辑于 2019-02-18 15:40:34
  • 《算法图解》读书笔记-第2章

    1. 数组和链表 链表:每个元素都存储了下一个元素的地址,从而使一系列随机内存地址串在一起。因此,在链表中添加元素很容易:放入内存,将地址添加到前一个元素中。 链表的问题是在读取后面的元素时,必须先读取前面所有的元素,使效率变低 数组:一组元...
    Al泰 编辑于 2019-02-15 16:21:42
  • 《算法图解》读书笔记-第1章

    本章主要介绍了: 1. 二分数查找(即找到一数组的中间数,包含n个元素的列表,用二分查找需要log2n步)。二分查找仅当列表有序的时候适用(不断对折减少运算步骤时间)。 2. 大O表示法O(n)——线性时间;O(logn)——对数时间。括号内为操作数 O(n*...
    Al泰 编辑于 2019-02-14 10:27:14
  • 有书共读07笔记【算法图解】1-2章

    第一章 算法简介 算法是什么,算法就是为了解决问题的思路吧。由此也就产生了很多解决问题的模型。问题无处不在,解决问题就需要效率,就好比生活中有的人办事就是效率高,但有的人办事就很差劲。书中一个例子讲的是二分查找算法,算法将需要执行的步骤...
    农夫山泉, 编辑于 2019-01-29 18:29:03
  • 有书共读07笔记【算法图解】3章

    作者:颜- 第三章.递归 1. 递归 递归就是函数自己调用自己.其实递归也可以使用while循环实现,但是递归可以让程序更加地清晰明了.但是递归没有性能上没有差别,使用它仅仅是为了更加容易理解罢了. 递归有两个重要的条件就是终止条件与递归条件.递归条件是...
    hannibal_Iecter 编辑于 2019-01-29 18:29:03
  • 有书共读07笔记【算法图解】4章

    快速排序 分而治之的方法解决问题 分而治之的方法解决问题有两个步骤,第一个是找出基线条件,而且这样的条件应该尽可能的简单;第二个则是不断地分解问题,直到符合基准条件; 注意,递归函数的基线条件通常为空或者是只包含一个元素,当递归函数无法停止时就检查递归条件是否...
    hannibal_Iecter 编辑于 2019-01-29 18:29:03