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
主要考虑时间成本,因为内存条不值钱,算法瓶颈往往卡在时间。
如何定义计算成本?
定义计算成本的时候,需要客观,理想化出一个模型出来,评价算法。
图灵机(抽象模型,为了度量算法复杂度)
如何用图灵机实现非负整数加一
最后复位,是为了规范化。
抽象模型,(抽象模型,为了度量算法复杂度)
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!