
算法
文章平均质量分 52
punkchang88
从事IC验证的伪码农,对正统码农很敬仰
展开
-
算法复杂度
经常在看算法的时候,会提到算法复杂度,那算法复杂度到底是什么,是怎么样来衡量算法的? 通常衡量一个算法,是从两个维度进行考量的: 运行时间 占用内存空间 这两个都是有限资源,第一个直接影响到算法的性能,关乎用户体验,第二个则直接与硬件内存相关,直接影响成本。 所以整个算法的复杂度也是使用这两个维度作为标尺去考量一个算法。 时间复杂度 时间复杂度简单的理解就是一个算法的执行时间,由于硬件资源的不同,绝对时间没有意义。回到算法本身,每行代码都是要执行的,那执行的行数越多,所耗费的时间也越多,那么时间复杂度就原创 2021-12-29 12:57:25 · 262 阅读 · 0 评论 -
动态规划(1)
动态规划 解决什么问题? 提供一种解决复杂问题的思路。 将复杂问题拆分成多个简单的子问题。 通过解决多个子问题,来解决原问题。 提供一种优化方式 在很多重复子问题时, 只计算一次后记忆化保存。 下次遇到同样问题时候,直接查表,避免重复计算。 什么是记忆化存储? 将计算过程中,大计算量的函数返回值保存在数据结构中,以便再次需要时直接从数据结构中取出,避免大量复杂的重复计算。提高运算速度。 这其实是一种空间换时间的思路,通过扩大空间来减少时间,具体用多大的空间是个trade off。 应用场原创 2021-01-05 13:37:41 · 102 阅读 · 0 评论