摘要:
1、分而治之(divide and conquer,D&C) (1)步骤:①找到简单的基线条件(可能是空数组货只包含一个元素的数组);②不断分解问题/缩小规模,直至符合基线条件。 (2)不是用于解决问题的算法,而是一种解决问题的思路。 (3)原理:将问题逐步分解。 2、欧几里得算法:gcd(a,b) 阅读全文
摘要:
1、数组 ①数组元素是连在一起的。 ②同一个数组中,元素的类型都必须相同(都为int、double等)。 ③支持随机访问,因此读取速度更快。 2、链表 ①链表元素是分开的,每个元素都存储下一个元素的地址。 ②仅支持顺序访问,但擅长于插入和删除操作(只需修改前一个元素指向地址)。 3、快速排序DEMO 阅读全文
摘要:
一、加权图(weighted graph) (1)提高或降低某些边的权重 (2)权重(weight):每条边所关联的数字 开销:从起点出发前往该节点所需要的时间。 (3)加权图(weighted graph):带权重的图【计算加权图的最短路径,使用狄克斯特拉算法】 非加权图(unweighted g 阅读全文
摘要:
1、递归 (1)调用函数自身 (2)每个递归函数都有两个条件:基线条件(base case:函数不再调用自己,避免无限循环【通常是数组为空或者只包含一个元素】)和递归条件(recursive case:函数调用自己) def countdown(i): print(i) # 基线条件 if i<=0 阅读全文