
算法
不学无术的小镇做题家
这个作者很懒,什么都没留下…
展开
-
《算法图解》第五章笔记+练习
散列表查找元素的时间为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 · 512 阅读 · 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 · 398 阅读 · 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 · 162 阅读 · 0 评论