![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
不学无术的小镇做题家
这个作者很懒,什么都没留下…
展开
-
《算法图解》第五章笔记+练习
散列表查找元素的时间为O(1)O(1)O(1)。 5.1 散列函数 散列函数必须是一致的,输入相同元素返回值必须一样。 散列函数应将不同的输入映射到不同的返回值。 Python提供的散列表实现为字典,可使用函数dict来创建散列表。 >>> book = dict() >>> book['apple'] = 0.67 >>> book['milk'] = 1.49 >>> book['avocado'] = 1.5 >>原创 2020-06-02 20:05:18 · 459 阅读 · 0 评论 -
《算法图解》第四章读书笔记+练习
本章内容 学习分而治之(divide and conquer,D&C),分而治之是你学习的第一种通用的问题解决方法。 学习快速排序——一种常用的优雅的排序算法。快速排序使用分而治之的策略。 4.1 分而治之 使用D&C解决问题的过程包括两个步骤。 找出基线条件,这种条件必须尽可能简单。 找出递归条件,不断将问题分解(或者说缩小规模),直到符合基线条件。 对于求数组元素总和的问题,一般的做法采用循环 def sum(arr): total = 0 for x in arr: t原创 2020-05-27 11:03:43 · 326 阅读 · 0 评论 -
《算法图解》第三章读书笔记
3.1 递归 递归通俗来讲就是”自己调用自己“。 ”如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解。如何选择要看什么对你来说更重要。“ 3.2 基线条件和递归条件 基线条件(base case):函数调用自己 递归条件(recursive case):函数不再调用自己 def countdown(i): print(i) if i <= 0: #基线条件 return else: #递归条件 countdown(i-1原创 2020-05-23 22:38:59 · 134 阅读 · 0 评论