计算之魂算法复杂度的相关概念

大O概念

算法的规范化和量化度量

图灵提出了计算机的数学模型,冯·诺依曼确定了计算机通用的系统结构,高德纳则奠定了计算机算法的基础。

在计算机科学中,更多的时候是需要顶层设计的,而不是从经验出发归纳总结。

高德纳的五件事:

  • 计算机算法分析的鼻祖,提出了评估计算机算法的标准
  • 编写了计算机科学领域的圣经——《计算机程序设计艺术》
  • 最年轻的图灵奖获得者
  • 编写了排版软件,Tex
  • 是硅谷地区众多图灵奖获得者中名气最大、最会编程的人

大师们偶然为之的工作比二流人才穷其一生的发现有时还有影响力呢?因为除了能力的差异外,他们还有着遇到问题时解决问题的积极态度。任何人在前进的过程中都会遇到问题,但是对待问题的态度决定了个人的命运。

思考题

世界上还有什么产品类似于计算机,是软硬件分离的?

手机、物联网设备,不过他们都属于计算机的范畴了。扑克牌(软件就是规则,硬件指扑克牌本身)

大数和数量级的概念

考虑用一种公平、一致的评判方法对比不同算法的性能。

高德纳提出的思想包括三部分:

  • 在比较算法的快慢时,只需要考虑数据量特别大,大到近乎无穷大的情况。
  • 决定算法快慢的因素有很多,可以分为两类:第一类是不随数据量变化的因素,第二类是随数据量变化的因素
  • 两种算法复杂度上相差哪怕一点,N很大后,效率可能就差出万亿倍

思考题

如果一个程序只运行一次,在编写它的时候,是采用最直观但是效率较低的算法,还是依然寻找复杂度最优的算法?

选择复杂度最优的算法,原因如下:

  • 不能确保之后编写的程序是否有类似功能,能够提供参考
  • 程序的数据量无法确定,如果数据量较大,复杂度最优的算法为佳

你可能感兴趣的:(计算之魂,算法)