首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么是算法?其实算法也很有趣。

大家好,我是贤弟!

这篇文章简单聊一下算法,后面会不定期关于算法的一些想法。

一、算法很有趣

对于绝对大数人而言,算法是一个讨论的东西,每每想到算法就会头疼。因为大家会觉得算法是高深且深奥的东西,想要理解算法需要很高深的数学知识。而数学是永远不会欺骗你,会就是会,不会就是不会!

实际上,算法应该是一种很有趣的思考方式,学习新的算法就是在提高个人的认知!

这里举个简单的例子:

问:把大象放进冰箱,需要几步?

(只要是懂一点IT的人都听说过这经典的问题——把大象放进冰箱。)

答:把大象放进冰箱分三步:

第一步,打开冰箱门,

第二步,把大象放进冰箱,

第三步,关闭冰箱门。

再问:把两只大象放进冰箱,需要几步?

答:把两只大象放进冰箱,一共需要四步。

第一步,打开冰箱的门,

第二步,把第一只大象放进冰箱,

第三步,把第三只大象放进冰箱,

第四步,关闭冰箱的门。

问题的关键来了,我们是在讨论什么是算法?

其实,我们在解决”把大象放进冰箱“这个问题的过程就是算法。

所以,我认为:解决问题的方法与步骤就是算法!

有许多人认为算法是复杂与深奥的,这是因为算法的最大特要求是:优化!不断优化,不断优化,不断优化!

即:好的算法必须是高效率还特别扣门!

用人话说便是:要让马儿跑得快,还不能吃得多!

回到前面的问题:把两只大象放进冰箱,一共需要几步?

这个问题还可以用另一种方法解决,也是四步,即:

第一步,打开冰箱的门,

第二步,将两只大象捆绑在一起,

第三步,将两只大象一起放进冰箱,

第四步,关闭冰箱门。

聪明的你也许会说:两种解决方法都是四步,有什么可说的?

但问题是,如果把问题变成”把三只大象放进冰箱、把四只大象放进冰箱、把N只大象放进冰箱……“,那第二种解决方法的效率一定会高于第一种。

虽然这个例子讲得很粗糙,但这就是我们对算法的追求——优化解决问题的步骤!

如果有人站出来说”冰箱的门哪有那么大?怎么可能把放得进两只绑在一起的大象?”

WOW!!!

恭喜你,这个同学!

你发现了我们对算法追求的BUG!——即:不可能同时实现资源占用减少与效率加倍提升!

这也是我们在日常使用算法过程中必须要考虑的问题:占用大量的资源,效率会提升;减少资源的占用,效率会下降!

所谓“鱼与熊掌不能兼得!”亦如是也。

最后,扯了那么多,我们总结一下:

什么是算法?

算法本质就是解决问题的方法。

我们对算法的追求是希望优化解决问题的步骤,用更少的资源能更快解决问题。

我们不需要对算法有任何恐惧,因为我们每天在做每件事都是一种算法。

上下班走哪条路线、去菜市场买菜时,先买什么后买什么,炒菜时,先放盐还是先放油,甚至是你在玩游戏时,女朋友生气了,先哄女朋友还是打完这一局,我们遇到每一个大大小小的问题,我们所做出的任何决策都是算法。

我们对算法的优化是永无止境,因为永远有更好的算法解决曾经的问题,只要你愿意学习、思考!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OO8ccF3AfPYmv2-g4Z-uvX_w0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券