算法真的有用吗?

 

其实这个问题是否命题,狭义上课本书上的算法有不有用其实看得是场景,而且算法并不是具体的指某一段程序,

 

算法书上对算法的定义是  有限 确定 有效的并适合用计算机程序来实现的解决问题的方法, 广义上来讲,业务逻辑本身也是一种算法,你说算法有用不有用呢?

 

我觉得个人不要纠结于算法,对各类算法问题 应该要了解,遇到工程上的问题,需要算法来解决,知道去查那种算法就行,而不是死记硬背 把每一种算法的实现 记录下来

 

举个例子

 

顺丰快递每天能收到成千上万的物流单,每个物流单的重量不一。

现在顺丰快递的货车司机隔壁老王开着顺丰的标配货车(限载 5 吨,含 5 吨,不考虑限高),想要一次性拿走尽可能重的货物,这些货有红木沙发,有钢材等等。

以下是货物清单:

货物编号 货物重量(单位:kg) 1 509 2 838 3 924 4 650 5 604 6 793 7 564 8 651 9 697 10 649 11 747 12 787 13 701 14 605 15 644

 

 

这个问题其实是最简单的 01背包 动态规划的问题,只要 写出递推公式,编码只要3分钟就能完成 但对通常不熟悉 动态规划 dp 递推的思想的人来讲,推导递推公式是十分蛋疼的

 

更简单的思想就是枚举,O(2^n)的复杂度,对于规模不大的问题,这种办法 最容易理解 也最容易实现 无非是 15种结果的 组合实现

C(1/15)+C(2/15)+...+C(15/15) = 2^15 

 

对于实际业务来讲,后者便于理解实现,如果计算规模不大,后者也许是更好的选择

 

posted on 2016-12-08 18:41  winters86  阅读(474)  评论(0编辑  收藏  举报