2018年7月25日日报
姓名:任光烨 日期:2018年7月25日
今日学习任务:学习指针及数组,数据结构。
今日完成情况:都已完成,100~200行代码。
今日开发中出现的问题汇总:无。
今日未解决问题:无。
今日开发收获:
自我评价:一般。
其他:附笔记
数据结构笔记
第一章
数据项是不可分割的最小单位。
数据对象是性质相同的数据元素的集合,是数据的子集。
数据结构是相互之间存在一种或多种特点关系的数据元素的集合。
逻辑结构是指数据对象中数据元素之间的相互关系。
集合结构:集合结构中的元素除同属于一个集合外,它们之间没有任何关系。
线性结构:线性结构中数据元素是一对一的关系。
树形结构:树状结构中的数据元素存在一种一对多的层次关系。
图形结构:图形结构的数据元素是多对多的关系。
注:每一个数据元素看成一个节点,用圆表示
数据元素间的逻辑关系用连线表示,如果有方向用箭头
物理结构/存储结构
物理结构是指数据的逻辑结构在计算机中的存储形式。
顺序结构:是把数据存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系一致。
链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的也可以是不连续的。
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
抽象是指抽出事物具有的普遍性的本质。
抽象数据类型是指一个数学模型及定义在该模型上的一组操作。
抽象的意义在于数据类型的数学抽象特性。
抽象数据类型体现程序设计中问题分解,抽象和信息隐藏的特性。
数据结构是互相之间存在一种或多种特定关系的数据元素的集合。
第二章
算法具有输入,输出,有穷性,确定性和可行性的基本特性。
- 输入输出:
- 算法具有0个或多个输出。
- 算法至少具有一个或多个输出
- 有穷性:算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每个步骤在可接受的时间内完成
- 确定性:算法的每一个步骤都具有确定的含义,不会出现二义性。
- 可行性:算法的每一步必须是可行的,也就是说每一步都能通过执行有限的次数完成。
正确性:算法的正确性是指算法应该至少拥有输入输出和加工处理无歧义性,能正确反映问题的需求,能够得到问题的正确答案。
可读性:便于阅读理解和交流。
健壮性:当输入不合法的数据,算法也能做出相关处理,而不是产生异常或者莫名其妙的结果。
时间效率高和存储量低。
算法效率的度量方法
- 事后统计方法:通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。
- 事前分析估算法:在计算机程序编制前,依据统计方法对算法进行估算。