鹏见解技术算法是什么
2023/12/9 来源:不详 浏览次数:次观众老爷好,前几期都有提到程序是由算法和数据结构组成的,而算法其实就是数学里的加减乘除以及逻辑判断组成,数据结构是事物的特征和属性。那算法到底怎么实现的呢?请观众老爷拿好茶杯,取出零食饮料,跟小编一起再次向编程的世界走进一步。在上一期说过面向对象分析思想非常重要,这里观众老爷跟小编一起来复习一下,面对事物和问题,我们首先第一步是分析,形状(圆,方,三角形),大小(长、宽、高),材质(金属,塑料,布料等),问题(条件,工具,解决办法),当我们进行初步判断后,就要进行验证(会动吗?吃什么?对我们有没威害?能不能吃?方法合不合理?),最终得出结论(确定事物是什么构成,能做什么,对我们的危害和益处,是否达到我们所期望的目的,问题是否得到了解决)。下面咱们一起用面对对象的方法进行事物的分析判断。观众老爷应该都有解答过“把大象装进冰箱需要几步?”这个脑筋急转弯吧?当我们遇到问题是第一时间会考虑这个问题的合理性?当然正常情况这个问题是不合理的?那如何判定这个问题是不合理的呢?接下来我们用编程来进行求解?首先我们把大象与冰箱的特征和属性进行数据建模(当然我们还是用伪代码描述):ClassElephant{//简单的建立一个大象的特征数据结构,这里也可以用struct//具体涉及到编程语言时再详细说明Class与struct的差别和相同之处。Stringspecies=NULL;//大象的品种,先赋值为空Intlong=0;//大象体长(以厘米为默认单位也可以用浮点float来进行变量类型申明)Intwidth=0;//大象肩宽Inthigh=0;//大象高度//大象因为不存在填充行为,这里不建立填充函数,在冰箱里进行建立。//当然大象的吃喝等行为在这里不是必要的也就不再进行数据化}ClassIcebox{Stringbrand=null;//冰箱的品牌,先赋值为空Intlong=0;//冰箱长度(这里是冰箱内部的长宽高,观众老爷可以忽略部分不合理的地方)Intwidth=0;//冰箱宽度Inthigh=0;//冰箱高度//这里可以建立冰箱一些行为与功能函数VoidOpenDoor(){Print(“打开冰箱门!”);//打开冰箱门函数}//当然在装填之前肯定需要判断这个物品能不能填进冰箱,下面进行实例化后再进行判断VoidFill(){Print(“把物品装进去!”);//冰箱填装函数}VoidCloseDoor(){Print(“关上冰箱门!”);//关闭冰箱门函数}}ElephantElephantOne;//实例化一个大象数据结构ElephantOne.species=“Asianelephant”;//这里是亚洲象,当然也可以用非洲象,具体这里不再一一列举ElephantOne.long=;//体长五米ElephantOne.width=68;//大象身体宽度ElephantOne.high=;//亚洲象最低肩高2.1米//台式电冰箱:高度为~mm,宽度为~mm,深度为~mm。这里全部采用最大值IceboxIceboxOne;//实例化一个冰箱数据结构IceboxOne.brand=“geli”;//格力冰箱IceboxOne.long=;//冰箱长度IceboxOne.width=50;//冰箱宽度IceboxOne.high=85;//冰箱高度/*到了这里观众老爷应该心里有了判断这个大象肯定不能填进冰箱的,但是编程就是要每一步都要进行详细的描述出来,我们的判断依据是什么?没有比较之前都不能作准,尤其数据我们需要让计算机自己来比对,我们只需要提供数据就行。*/Intstep=0;//建立一个整形变量,计算所需步骤If(IceboxOne.longElephantOne.longIceboxOne.widthElephantOne.widthIceboxOne.highElephantOne.high){//先进行三个值比对,然后三个值进行与操作,三个全为真这个条件才为真step=step+1;//如果物体能装进冰箱第一步IceboxOne.OpenDoor;//打开门,在判断之前也可以打开冰箱,可以在冰箱类里加个条件判断冰箱是否已经打开step=step+1;//如果物体能装进冰箱第二步IceboxOne.Fill;//装进冰箱step=step+1;//如果物体能装进冰箱第三步IceboxOne.CloseDoor;//关上冰箱门Print(“大象装进冰箱需要/n步”,step);//输出所需步数,/n意思是引用一个内存地址后面提供的step就是目标地址}Else{Print(“物体太大,冰箱装不下。”);//如果冰箱装不下物品,计算机会告诉我们这个物品很大,冰箱是装不下的。}到了这里观众老爷是不是明白什么是算法?算法可以是数学公式,可以是条件判断,也可以是复杂的逻辑处理!最终的目的是解决我们所要解决的问题和所要达到的目的,不论中间多么复杂,最终得到输出结果!当然算法也有好坏之分,这个好坏是相对计算机运行速度和计算所需时间以及对资源的消耗来说的,但不论好算法也好,坏算法也罢,只要能解决实际的问题,而且不出错才是真正的好算法。如果观众老爷真的想成为编程技术的大牛,小编建议多学习数学,在编程时很多算法其实都与数学息息相关,不论是判断还是计算,都有数学的影子,尤其人工智能方向,如果数学不好,我们只能成为应该工具的人,而不能成为创造工具的人,在编程里,函数的编写是离不开算法的!具体函数是什么?在以后小编会详细介绍!观众老爷下期再会!