https://www.bilibili.com/video/av49361421?p=7
谈谈有穷性
def hailstone(n):
length = 1
Hailstone = []
Hailstone.append(n)
while (1 < n):
if (n % 2 == 1):
n = (int)(3 * n + 1)
Hailstone.append(n)
else:
n = (int)(n / 2)
length += 1
Hailstone.append(n)
return length, Hailstone
print(hailstone(7))
print(hailstone(27))
output
其他学科探讨这个算法有穷性问题。(具体数学,专门探究各种算法背后的数学原理的)
我们这门课要研究的是,在正确性、确定性、可行性、有穷性已知的情况下,如何优化算法和数据结构,达到一个更好的计算过程。
什么才是好算法?
已知有:
如何度量数据结构和算法的好坏?
DSA
主要考虑时间成本,因为内存条不值钱,算法瓶颈往往卡在时间。
如何定义计算成本?
定义计算成本的时候,需要客观,理想化出一个模型出来,评价算法。
图灵机(抽象模型,为了度量算法复杂度)
如何用图灵机实现非负整数加一
最后复位,是为了规范化。
抽象模型,(抽象模型,为了度量算法复杂度)