当前位置:首页 > 公众号精选 > 嵌入式微处理器
[导读]算法太重要了!“人工智能”,“机器学习”,“大数据”,这些越来越常听到的字眼,背后其实都是一个个“算法”。诸多高新科技,似乎都离不开“算法”的“加持”。

算法太重要了

人工智能”,“机器学习”,“大数据”,这些越来越常听到的字眼,背后其实都是一个个“算法”。
诸多高新科技,似乎都离不开“算法”的“加持”。
科学家 / 工程师 / 技术人员,现在如果不懂点算法,都不太好意思了。
算法其实很容易
听着这么高大上的“算法”其实一点也不难学!
为啥讲算法的书却很难看懂?
就是讲得太复杂了么,不同编程语言还都不一样。
什么是“算法”
算法,一看字面就知道,肯定是“计算方法”的简称啦,特指“计算机的计算方法”,所以,算法是由电脑程序来实现的。
算法,英文叫Algorithm,就是为了让电脑解决一个问题而设计出来的一套计算方法,这套计算方法的设计是依靠“数学模型”的建立。
也就是说,程序员在设计算法之前,会将实际问题理解分析,归纳为一个“具体的数学问题”


算法是解决问题的计算方法
算法有这么几个特征
确定
算法的每一个步骤都有“明确的意义”,对于算法结果的预期也是明确的。
2 有穷
算法不能一直算,停不下来是不行的;要有一个明确的结束条件,要不然算到“天荒地老”还有什么意义呢?
可行
有个笑话说一个人面试会计师,算数特别快瞬间出结果,但是就是算得不对。
输入输出
算法就是用来解决问题的,问题的来源就是输入,问题的结果就是输出。


再复杂的算法也是由一个个小算法组合成的

怎么设计一个算法程序呢

算法有三个要素——
数学模型输入输出方法算法步骤


所以说,怎么设计一个算法呢?
首先,先对要解决的问题建立一个数学模型,把原问题化为数学问题;
然后,将问题的“已知条件”化为“数据”输入到数学模型中;
再然后,通过对输入一步一步的转化/处理/计算,得到结果;
最后,把结果按照希望的形式,输出出来。

举个例子吧

比如我们要解决一个问题——班级里有30个同学,我们现在知道他们的姓名和考试分数,比如小红90分,小刚97分,小明60分等等,求班级里面哪位同学成绩最好?


谁的成绩最好呢?
那么我们按照上面的步骤来设计一个小算法吧。
把原问题转化为数学问题
求30个成绩值中的最大值及对应的姓名;
已知条件化为输入数据
依次输入30个名字和30个成绩值;(其中名字的数据类型为字符串,成绩值的数据类型为整数型,关于数据类型我们将在后面详细讲解)
分步计算
这是一个典型的求最大值的问题,方法很多,这里举一种方法:
3-1 取出第1个同学和第2个同学的姓名和成绩,比较大小,将那个较大的成绩值储存在一个位置,这个位置我们给他起个名字,就叫<当前最大成绩值>吧,再把这个较好的成绩对应的同学姓名存到另一个位置,就叫<当前最好成绩的同学姓名>;
3-2 这样,第1个同学和第2个同学成绩比较完成,得到了这2名同学中的成绩最好的同学,信息储存在:<当前最大成绩值>和<当前最好成绩的同学姓名>中;
3-3 下面就是重复性的工作了,把得到的<当前最大成绩值>和<当前最好成绩的同学姓名>与第3位同学进行比较,仍然是把较大的成绩值储存在<当前最大成绩值>里,把这个较好的成绩对应的同学姓名存到<当前最好成绩的同学姓名>里;
3-4 这个过程一直进行,直到把30个同学的信息都比较完,这时<当前最大成绩值>里存的值就是最好的成绩,<当前最好成绩的同学姓名>里存的值就是这位最厉害的同学的姓名。
输出
按照你想要的格式,将上面两个储存的值显示出来,就完成了!

借上面的例子有几点要说明一下

解决同一个问题,可能有各种各样的算法。不同的算法,可能执行速度不同,可能编写难易度不同,可能占用的资源不同,甚至可能计算准确度都不同;很多时候并没有最好的算法,只有在特定条件下最适合的算法
每一个算法都有适用的条件,条件变了,算法可能就用好用了。比如上面例子,如果这个班级中有2个同学的成绩刚好一样,那么按理说就应该输出两个姓名和成绩,上面的算法就需要改进一下了。


算法 —— 一个强逻辑体
能把问题具体化为一个或几个数学问题,问题就解决了一半。就如同学习和工作中一样,所谓解决问题的能力,有一半是分析问题的能力,能够将大问题分解成小问题,将抽象问题等价为具体问题。
作者|科技千里眼
来源|https://www.toutiao.com/a6616930406409175556/
- END -

【1】国内MCU能替代国外产品吗?MCU的未来又将如何?

【2】35岁真的是程序员的坎儿吗?

【3】不同编程语言能耗不同?看这27种语言对比!

【4】超长干货为你解析:从串口驱动到Linux驱动模型,嵌入式必会!

【5】本文把TCP/IP讲绝了!




免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭