数据结构(c语言版严蔚敏_吴伟民)读书笔记 第一章

目录

 

数据结构第一章 绪论

数据元素之间存在的关系称为结构

算法

1.算法应具有的特性

2.设计算法的要求

3.算法效率度量(时间复杂度)T(n) = O(f(n))

4.算法的储存空间的需求(空间复杂度)S(n)=O(f(n))


  • 数据结构第一章 绪论

  1. 数据元素之间存在的关系称为结构

1.集合:结构中的数据元素除了“属于同一个集合”外别无其他关系

2.线性结构:结构中的数据元素之间存在这一个对一个的关系

3.树形结构:结构中的元素之间存在着一个对多个的关系。

4图状结构或网状结构:结构中的数据元素之间存在着多个对多个的关系

 

当数据结构定义的仅仅只是对操作对象的一种数学描述,即从操作对象抽象出来的数学模型。结构定义中的“关系”描述的是数据元素之间的逻辑关系,又称为数据的逻辑结构。

在计算机中讨论数据结构的目的是为了在计算机中实现对他的操作。

数据结构在计算机中的表示(又称映像)称为数据的物理结构,有称为储存结构。

数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像非顺序映像,并由此得到两种不同的存储结构:顺序存储结构链式存储结构。

数据的逻辑结构和物理结构是密切相关的两个放面。任何一个算法的设计决定的数据(逻辑)结构,而算法的实现依赖采用的存储结构。

c语言中的数据类型是一个值的集合和定义在这个集合上的一组操作的总称。

按“值”的不同特性,高级程序语言中的数据类型可以分为两大类:一类是非结构的原子类:这个类的值是不可分解的,例如c语言中的整型,字符型。

结构类型:结构类型的值是由若干的成分按某种结构足证的,可以分解,他的成分可以是非结构类型,也可以是结构的,数据结构可以看成是一组具有相同数据结构的值。结构类型可以堪称由一种数据结构和定义在其上得到一组操作组成。

  • 算法

1.算法应具有的特性

a.有穷性

b.确定性

c.可行性

d.输入输出(适当的)输出是一定会有的,输入不一定。

2.设计算法的要求

a.首先得保证正确(无语法错误,程序运行可以得到满足规格要求得到结果,程序经得起典型、苛刻带有刁难性的机   组输入数据的考验、程序对一切合法输入数据能产生满足规格的结果。)

b.可读性(便于阅读,交流,调试,修改)

c.健壮性(输入非法时无须计算结果,返回从无或错误性质的值,并提醒用户输入非法)

d.效率与低存储量的需求

3.算法效率度量(时间复杂度)T(n) = O(f(n))

a.事后统计(利用计算机内部的计时功能)

b.事前分析估算(估算依据算法采用何种策略、问题的规模、书写程序的语言:对于同一种算法,实现语言的级别越高,执行的效率就越低)、编译程序所产生的机器代码的质量、机器执行指令的速度:不同语言编写,不同编译程序。

 

显然我们不能用绝对的时间单位来衡量算法的效率是不合适的,我们除去这些不可估算的因素我们可以认为一个特定的算法运行的工作量的大小,只依赖于问题的规模(通常用着整数量n来表示),或者说踏实问题规模的函数。

 

一个算法是由控制结构(顺序,分支,循环3种)和原操作(hi固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。

即从算法中选取一种对于研究问题或算法类型的来水基本操作的原操作,以该基本操作重复的次数作为算法的时间度量。(时间复杂度)

4.算法的储存空间的需求(空间复杂度)S(n)=O(f(n))

你可能感兴趣的:(读书笔记(内功心法))