c程序设计谭浩强第五版课后答案,c程序设计第五版?

注意,请认真学习完《C程序设计(第五版)》第二章后再阅读本文会有更大的收获。

c程序设计谭浩强第五版课后答案,c程序设计第五版?

程序的灵魂——算法

算法即思路

算法即解题思路。在编写代码之前,必须思路清晰、严谨,具体到哪一步实现什么样的目的。试想,打开编辑器盲目的敲代码是多么的痛苦,这是笔者的个人经历,在编写代码的过程中会有大脑突然断电的情形:敲几行代码接着又删掉,甚至不由自主的会随意敲几个字符然后疯狂的点删除键。

那初学者怎么更加深刻地理解算法的意义呢?

首先从字面上理解——计算方法。算一道数学题对我们来说再也熟悉不过了,就拿书上1到100自然数求和来说,当初上学的时候老师会带着我们一起推导,最后总结出等差数列求和的公式,即可称之为一种算法。

其次是逻辑性。计算方法是严谨的,过程中的每一步都要符合逻辑才能得出想要的结果。·且逻辑是有层次的,每一层又有其内在的关联逻辑,可独立于其他层逻辑,也可决定相邻层甚至全局的逻辑。

精练和抽象。一个算法,能解决1到100的自然数求和,但是1到200就无能为力了,这显然不是一个好的算法,甚至不能称之为算法。在解决完某一个具体问题后,我们提升精练解题过程,抽象成对应的这一类问题的解题方法,不仅仅是求和1到1000的自然数,而是求和任意的等差数列,那这个精练的解题方法就可称之为算法。

算法推演到后面貌似都成了数学问题,学好算法需要具备一定的数学思维,而且不是简单的加减乘除了,需要我们针对不同的问题建立相应的数学模型来解题。

综合来讲,初学者不要害怕“算法”,多锻炼自己的解题思路,理清主线逻辑和分支逻辑;再者就是要抛开编程语言,不要有“我连编程都不会怎么会算法”这个思想误区。程序是为了实现算法,算法是程序的灵魂,而编写程序可以有很多种语言(C语言只是其中一种),要充分理清明白他们之间的关系,才有利于我们往后深入的学习。

工作中的算法

在工作中,除了算法工程师之类职位之外,其他的程序员职位在工作中遇到纯算法的任务很少。常见的纯算法问题比如:用户行为画像、搜索建议、内容推荐、广告推荐等,他们的背后就是各种数据模型了。

基于笔者的经验(后端开发)来讲,我遇到的算法问题基本上糅合在业务代码里,需要特别用到算法的业务则会由专门的算法工程师封装好对外开放调用。

一个项目怎么拆分,一个模块怎么分解,具体到某个类、某个函数实现何种业务,这个要靠经验的积累和对项目本身所属行业的业务研判。文章开头讲到:算法即解题思路,那如果把视角抬高,整个项目作为一道题,那么,对项目的顶层设计、模块拆解、功能划分等就是宏观意义上的算法了。

再把眼界放宽,国家的百年计划,或者我们常听的“十四五规划”,即一个五年周期的国家发展的规划,这也是一个算法,它解决的问题是如何在一个五年周期内把整个国家的政治、经济、文化、教育等综合水平都提升到某个档次。

注意:“宏观的算法”只是笔者为了加深对算法的认知和理解想到的一个名词,在计算机术语里并不存在。

算法练习

推荐网站力扣 https://leetcode.cn/,注册之后就从推荐的新手村开始练习,从易到难。

但是去练习有个前提是我们会一门编程语言。尽管我们还不会C语言,也可以先注册,可以不用编写正式的代码,而是用“伪代码”这种形式来表述我们的算法,等到我们学习了C语言相关的语法、数据结构之后再去把“伪代码”转换成C语言代码即可,这样既能验证我们的算法,也能练习C语言。

算法的练习最好不要中断,对未来找工作面试很有帮助哦~

算法的未来

随着近几年大数据、人工智能机器学习的快速发展,算法这个概念逐渐被大众所熟知。

基于大数据的人工智能,背后经历了上亿甚至更多次的模型训练和学习,也应用到了各种领域。内容推荐,你现在读的本文就是根据你的日常浏览行为经过一套算法处理之后推荐到你眼前的;智能客服,根据过往用户的问题来自动解决你提出的问题(虽然有时候很鸡肋,真人客服目前还是刚需);智能机器人,每天跟你交流对话,掌握你的习惯和行为,其实更多的想法还是从你身上赚钱^_^

那未来的算法是怎样的呢?有个问题不能忽略,算法的逻辑还是人来定的,如果算法能自己净化并跳跃出一开始定义它的人的逻辑,那《西部世界》、《失控玩家》等科幻影视也可能成为现实了…

往期文章

一起学《C程序设计》第一课——C语言概述和学习前的准备、意识

C程序设计(谭浩强)——第五版和第三版对比

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.vsaren.com/143196.html