前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【算法学习】万事皆可算

【算法学习】万事皆可算

作者头像
头发还在
发布2022-11-13 13:34:53
2120
发布2022-11-13 13:34:53
举报
文章被收录于专栏:桃花源桃花源

算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算法的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~

1、生活中充满算法

算法在我们的生活当中,可以说随处可见。

比如华罗庚先生曾经写的一篇中学课文《统筹方法平话》中最出名的例子,莫过于“烧水泡茶”:烧水泡茶有五道工序:一、烧开水,二、洗茶壶,三、洗茶杯,四、拿茶叶,五、泡茶。假设各道工序所需的时间如下:烧开水15分钟,洗茶壶2分钟,洗茶杯1分钟,拿茶叶1分钟,泡茶1分钟。而泡茶的方法有两种。一种是先烧水,水烧开后洗刷茶具,拿茶叶,再沏茶;另一种是先烧水,烧水过程中洗刷茶具,拿茶叶,水烧开后沏茶。

如何选择最优的方案,即是我们算法需要解决的问题。

2、如何判断是否为最优的算法

例子当中,我们需要比较的是,哪种泡茶方案用时最短?

首先我们需要列出所有可能的算法:

大致有三种方案:

方案一:先烧水,水烧开后再洗茶壶、洗茶杯,拿出茶叶来泡茶;

方案二:烧水,在烧水的过程当中,洗茶壶、洗茶杯,拿出茶叶,坐等水开,泡茶;

方案三:洗茶壶、洗茶杯,拿出茶叶,再去烧水,坐等水开,泡茶。

3、算法分析

方案一、方案三相当于是单线程串行执行,显然不太经济,耗时较长,资源利用效率低;

方案二在烧水的同时,去做其他事情,相当于在烧水线程执行的同时,又开了一个线程去执行其他操作,提高了资源利用率,缩短了任务总的执行时间,算法更优。

4、算法不是固定的

但是这个算法也并不是固定的,倘若我们在整个任务中,增加了人手,比如拿茶叶这项任务可以交由孩子去做,那么以上方案就需要重新做出调整了,事易而备变。

再比如随着时代的发展,过去烧开一壶水需要15分钟,现在可以只需要3分钟甚至更短的时间,原先最优的算法,也许到了某一时间,不再是我们的最优选择。比如长途旅行,过去肯定会选择坐飞机,随着我们国家高铁的不断发展,长途旅行中,更多的人愿意选择高铁出行就是最好的例子。

5、学好算法

学习算法的好处,套用原文章的说法:妙不可言。

掌握了优秀的算法,可以让我们的工作事半功倍,提高资源利用率,从时间复杂度和空间复杂度两个维度,对算法进行优化。

同时也要求我们不断的学习和深入的思考:

学习新的算法思路;思考算法为什么要这么设计,思考还有没有更好的替代方案?

在算法精进的道路上,道阻且长!

加油吧,技术ers!

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:/developer/support-plan?invite_code=ceug2sn32fvt

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、生活中充满算法
  • 2、如何判断是否为最优的算法
  • 3、算法分析
  • 4、算法不是固定的
  • 5、学好算法
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com