数据结构与算法之绪论

数据结构与算法之绪论

这学期,我们加入了一门新课程:数据结构与算法。在此之前许多同学都听过这门课,但是能够深入了解的并不多。首先,我们在学习数据结构与算法之前要知道什么是数据结构与算法,为什么要学习它?

我们可以先将其分别拆开来看,再来分别解释。那什么是数据呢?客观事物的符号表示,是所有能输入到计算机中并能被计算机程序处理的符号的总称。

如:数学计算中用到的整数和实数;

文本编辑中用到的字符串;

多媒体程序处理的图形、图像、声音及动画等通过特殊编码定义后的数据。

我们可以用一张图来表示结构。结构又分为集合、线性、树、图,这些结构在我们生活中的例子特别多,比如说像右边的图就是一种树形结构。说完了数据与结构,我们再来谈谈算法。算法在程序中起到了很大的作用,可以说程序就是一种算法。算法的定义是一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列。算法的描述包括了自然语言、流程图、程序设计语言、伪码。这些描述语言在对问题的描述能力方面存在着一定的差异,但是描述的结果必须满足算法的五个特征:

输入:一个算法必须有零个或以上输入量。

输出:一个算法应有一个或以上输出量,输出量是算法计算的结果。

明确性:算法的描述必须无歧义,以保证算法的实际执行结果是精确地符合要求或期望,通常要求实际运行结果是确定的。

有限性:依据图灵的定义,一个算法是能够被任何图灵完备系统模拟的一串运算,而图灵机器只有有限个状态、有限个输入符号和有限个转移函数(指令)。而一些定义更规定算法必须在有限个步骤内完成任务。

有效性:又称可行性。能够实现,算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。

现在我们都理解算法的意义了,那么我们怎么去评价一个算法的优劣呢?我们可以先思考,我们设计一个算法的目的就是为了能够输出结果,所以最重要的一点就是正确性。其次,我们设计算法肯定不是给自己一个人看的,我们所描述的算法必须要让别人能够理解。在考虑到这两点后,我们就要为用户想想,有些时候用户可能因为某些不当操作输入的指令是非法的,我们也要让算法能适当的做出反应或处理,而不会产生一些莫名其妙的输出结果。在以上的问题都考虑到以后,我们可以就要在代码上进行改进,能够提高效率和降低储存量。

如果说各种编程语言是程序员的招式,那么数据结构与算法就相当于程序员的内功,想要写出精炼、优秀的代码,不通过不断地锤炼,是很难能做到得。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值