架构感悟 5- 算法之美
计算机科学的神奇之处就在于让业务基于数据模型在计算机进行处理。
程序=数据结构+算法
如果数据结构是红细胞,那么算法就是血液。他们共同为程序提供了生命力。当算法结束的时候,那么程序就完成了它的使命,并交付最后的成果。
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。 也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。 如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。
算法处理时间越短越好
计算机的特点不是聪明而是快,聪明是是程序的算法设计者赋予其的能力。算法设计者们为了能够在更短的时间里得到计算结果,
算法的时间复杂度对比
常用的时间复杂度所耗费的时间从小到大依次是:
常数型O(1)
对数型O(log n)
线性型O(n)
线性对数型O(n log n)
平方型O(n^2)、立方型O(n^3)、K次方型O(n^k)
平方底指数型O(2^n)、立方底指数型O(3^n)、K次底指数型O(k^n)
阶乘型O(n!)
时间优化的思路
提升算法
空间换时间
特定场景优化
算法止于梦
理想总是很丰满,现实总是很骨感
任何算法都要经得住实际应用场景的考验,所以算法不止停留于理论还应该践行于实践。一致性HASH 从理论到实践
算法的使用应该因地制宜
https://algorithm-visualizer.org/
参考:
https://www.jianshu.com/p/91af184a6501
版权声明: 本文为 InfoQ 作者【旭东(Frank)】的原创文章。
原文链接:【http://xie.infoq.cn/article/de931b19ac2e0ea55c201bfd6】。文章转载请联系作者。
评论