数据结构的作用及学习方法
2019-07-21 01:24发布
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
1.程序设计的本质? 程序 = 数据结构 + 算法 数据是计算机化的信息,它是计算机可以直接处理的最基本和最重要的对象。无论是进行科学计算或数据处理、过程控制以及对文件的存储和检索及数据库技术应用等,都是对数据进行加工处理的过程。因此,要设计出一个结构好效率高的程序,必须研究数据的特性及数据间的相互关系及其对应的存储表示,并利用这些特性和关系设计出相应的算法和程序。 数据结构和算法并不是一门教你编程的课,它们可以脱离任何的计算机程序设计语言,而只需要从抽象意义上去概括描述。说的简单一点,数据结构是一门告诉你数据在计算机里如何组织的课程,而算法是一门告诉你数据在计算机里如何运算的课程,前者是结构学、后者是数学。程序设计就像盖房子,数据结构是砖、瓦,而算法则是设计图纸。你若想盖房子首先必须要有原材料(数据结构),但这些原材料并不能自动地盖起你想要的房子,你必须按照设计图纸(算法)一砖一瓦地去砌,这样你才能拥有你想要的房子。数据结构是程序设计这座大厦的基础,没有基础,无论设计有多么高明,这座大厦不可能建造起来。算法则是程序设计之灵魂,它是程序设计的思想所在,没有灵魂没有思想那不叫程序,只是一堆杂乱无章的符号而已。在程序设计中,数据结构就像物质,而算法则是意识,这在哲学上可以理解为:意识是依赖与物质而存在的,物质是由意识而发展的。双方相互依赖,缺一不可! 2.写程序的目的? 目的是做数据处理,所有要能写程序得有下面的这些素质。 根据业务需要,制定或编制解决问题的流程。编辑程序的人应该是精通业务的人。 编辑计算机程序的要求: 1、 精通业务 2、 精通计算机语言 明确我们学习的内容和方向: 1、 解决问题的思路 2、 计算机语言 3、 思维方式的转变 编程的重点是解决问题的思路,而思路和计算机语言是没有关系的。 编程的难点是思维方式的转变,我们需要站在计算机的角度去思考和描述问题。 3.如何提升效率? 提升数据存取的速度,切合实际数据结构。 最经典的数据结构是有限的,包括线性表、栈、队列、串、数组、二叉树、树、图、查找表等,而算法则是琳琅满目的,多种多样的。就好像数据结构是人体的各种组织、器官,算法则是人的思想。你可以用自己的思想去支配你的身体各个可以运动的器官随意运动。如果你想吃苹果,你可以削皮吃,可以带皮吃,只要你愿意,甚至你可以不洗就吃。但无论如何,你的器官还是你的器官,就那么几样,目的只有一个就是吃苹果,而方式却是随心所欲的!这就是算法的灵活性、不固定性。因此可以这样说:数据结构是死的,而算法是活的。 二、找工作 1.笔试题
笔试题也经常会考数据结构的使用,大部分情况都是链表的合并和拆分,比如这个题就是链表的拆分。 三、逻辑思维 数据结构和算法是一部发展史,发明他们就是为了“做出东西”,学习他们是为了不重复发明轮子,当你在“做东西”时遇到运行效率上的瓶颈,就可以参考这些前人的方案,当学完后,就能评估出一个“东西”以现在的技术是否可能做出来有人罗列xx结构、xx算法能干嘛干嘛全是屁话,书上都有。说白了这东西就是前人的公式,学习就是为了套公式解决问题的,解决世界难题就要发明新公式(算法/结构)能否做出来包括两点:效率是否能承受,功能是否能实现 一些语言包装了大量基础算法,用于快速实现功能,一般效率也是可以接受的当效率不能接受,就需要调整算法和结构,c甚至汇编题主应该是想做看得见摸得着的东西,所以应该选择抽象级别高的语言。先定这“东西”干嘛用的,拆分所有要实现的细节,逐个完成,当它运作起来并快如预期,就做完了是否有必要深入学,和你在实现过程中的效率需求有关。 四、学习方法 各种结构的思想很重要,无非就是每种结构的增、删、改、查,所有先的把每种结构的图示画出来,也就是理解思想,再用图形得到相应的文字,最后再把文字翻译成代码。而不是一味的去追求代码量,记住能复制粘贴就复制粘贴。所有学数据结构就是学思想,抓住思想就很重要(创客学院)感觉对嵌入式还迷茫的可以看下这个 讲的更生动好理解一些走进嵌入式http://www.makeru.com.cn/live/1392_303.html?s=70408 另外自己建了一个嵌入式交流群,也有干货分享,有兴趣的可以进来吹水交流:618225654
一周热门 更多>