本文为小甲鱼数据结构和算法教学视频的学习笔记
第一章:谈谈数据结构和算法这2个好基友
一、聊聊数据结构
1、为什么学数据结构?编程能力有质的飞越,不再停留在调用现成的API,做一个上档次的程序员。
2、什么是数据结构?数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。
思考:好吧,简单来说程序设计 =数据结构 + 算法,数据结构就是关系,就是数据元素之间存在的一种或多种特定关系的集合。
3、数据结构分为逻辑结构和物理结构,前者指数据对象中数据元素之间的相互关系,否则指逻辑结构在计算机中的存储形式
思考:数据结构 =逻辑结构 +物理结构
4、逻辑结构有四种如下所示:
思考:如果从人的交合方面说明4大逻辑结构,集合 = 2个陌生人,线性结构 = 1对夫妻,树形结构 = 一男多女3p4p5p,图形结构 = 聚众淫乱
5、物理结构是指如何将数据元素存储到计算机的存储器中,此处的存储器主要针对内存而言,像硬盘、光盘能外部存储器的数据组织通常用文件结构来描述。
思考:如果说逻辑结构是关系,那么物理结构就是关系在内存的存储关系
6、数据元素的存储结构形式有两种:
思考:存储结构 = 顺序存储 +链式存储,前者就是排排坐,后者多了指针指向元素地址,就可以找到下一个元素在哪里,就是叫号系统
二、聊聊算法
1、不明白数据结构和算法的关系?,见下图
2、算法是什么?算法宅计算机中表现为指令的有限序列,并且每一条指令表示一个或者多个操作。一个问题可以由多个算法解决,一个算法也不可能具有通解所有的问题。
思考1:算法就是你泡妞的技巧和方式,对不同的妞儿要有不同的喜好,可以有多个追求的方式,一种追求方式不可能对通吃所有的妞儿,不同的追求方式就有差别,有的追的快,有的追得慢。学会针对不同的妞儿采取适合的泡妞技巧才能够快速的泡到妞
思考2:尽管算法不唯一,但是我们要学习掌握好一些号的算法,对我们解决问题很有帮助。
3、算法的5个基本特征:输入、输出、有穷性、确定性和可行性
4、算法的要求:正确性、可读性、健壮性、时间效率高、存储量低
5、算法的正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性,能正确反映问题的需求、能够得到问题的正确答案。大体分为以下四个层次:
思考:对于非法输入和故意刁难的测试都有输出满足规格结果很重要
6、算法的可读性:算法设计的另一个目的就是为了便于阅读、理解和交流。我们写代码的目的除了让计算机执行,还有就是为了便于他人阅读和修改
思考:代码的可读性要强
7、算法的健壮性:当输入数据不合法时,算法也能够做出相关的处理,而不是产生异常、崩溃或者莫名其妙的结果。
思考:健壮性,简而言之就是不会因为别人乱输入就把你的程序搞崩溃了
8、算法的时间效率高和存储量要低:执行的效率很高,使用变量少,少用内存资源
0525.第一章:谈谈数据结构和算法这2个好基友[数据结构和算法],布布扣,bubuko.com
0525.第一章:谈谈数据结构和算法这2个好基友[数据结构和算法]
原文地址:http://blog.csdn.net/paulery2012/article/details/27122013