我们常说的学习编程,常常被很多人狭义地理解为使用计算编程语言,认为理解了计算机编程语言的语法规则、学会了如何使用计算编程语言就学会了编程。其实不然,学习计算机语言只是我们学习编程的第一步,如何利用语言来组织一段蕴涵丰富逻辑的程序代码才是编程的核心内容,而本课程就集中解决这个如何组织的问题。它包括两部分,一个是解决计算机怎么来存储我们需要处理的数据,即数据结构部分,还有部分就是解决如何在这些存储的数据上做计算,即算法,两部分内容息息相关,好的算法离不开好的数据结构,而好的数据结构也需要好的算法来体现其价值。
从某种意义上讲,数据结构与算法这门课程是我们编程能力、计算思维的集中体现,学好这门课程能大幅提高我们的编程水平、计算思维水平。从各种计算机学科类考试的内容分布来看,本课程也是历次考试考察的必考科目,像我们熟悉的信息学奥林匹克比赛、计算机专业特长生招生考试、计算机专业研究生入学考试等,都对本课程内容进行了重点考察,部分考试甚至能脱离程序语言语法规则,单独考察本课程内容,从这一点上也说明了,数据结构与算法这门课所涉及的内容跟一般的编程语言有着本质的区别。
数据结构与算法涵盖的内容数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
算法是对特定问题求解方法(步骤)的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。可以简单地将算法理解为解决问题的思路。一个算法可以用多种方法描述,主要有:使用自然语言描述;使用形式语言描述;使用计算机程序设计语言描述。数据结构往往同高效的检索算法和索引技术有关。
数据结构与算法这门课程要求学生能够为数据选择适当的逻辑结构、存储结构以及相应的处理算法,能够分析算法的时间、空间复杂度,培养良好的程序设计风格,掌握进行复杂程序设计的技能。它是一门综合性的专业基础课。
数据结构与算法应用领域在我们的日常生活中,应用到数据结构与算法的地方有很多,实例到处都是,比如说,做搜索引擎,对字符串的各种查找、索引的算法就有很高要求;做人工智能,对模式识别、搜索的要求就很高;做数据库设计,对字典、内外排序、搜索与索引以及数据的连接方式都有很高要求;做通讯密码,对数论、Fourier分析有要求等等。具体内容的应用也有很多,例如:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系等。
经典应用案例:公交线路图的构建和查询
1.使用图模拟城市公交系统,即站点和路线分别为对应有向图的数据结构顶点和边,采用邻接表的存储方式来构建和存放图。
2.公交路线图中满足一个站点上有存在多辆公交车经过
3.每条公交车都会经过多个站点,即一条公交之间需要多条边相连。
4.对于站点和公交路线等信息需要存放在文件中
对于正确创建的公交路线能够查询公交路线,站点信息,两站之前有无存在路径,同时可以适当对公交路线进行修改,来满足相应需求。
预览时标签不可点收录于话题#个上一篇下一篇