数据结构---C语言基础

Python022

数据结构---C语言基础,第1张

程序=算法+数据结构

数据结构是设计OS、DBMS、编译等系统程序和各种应用程序的重要基础。

常见的数据结构有:数组、栈、队列、表、串、树、图和文件等。

数据是什么?

①杂乱的数据不能表达和交流信息

②数据之间是有联系的

③数据之间是有结构的;

④在某种数据的结构上可以定义一组运算

程序设计的基本要素:

数据(Date) :所有能被计算机处理的符号的集合。

数据元素(Data Element) :数据这个集合中的单个个体。

数据项(Data Item) :数据元素常常被分为若干个数据项,数据项是数据具有意义的最小单位。

数据对象(Data Object) :具有相同特性的数据元素的集合。

数据结构(Data Structure) :是带有结构的数据元素的集合。

逻辑结构(Logical Structure) :指数据元素之间的结构关系。

物理结构(Physical Structure) :指数据结构在计算机内存中的表示。

物理结构的存放直接决定了逻辑结构的选择。

什么是算法

算法是一个有限的指令集,遵循指令流可以完成特定的功能。

算法的基本特性:

如何衡量一个正确算法的好坏?

算法与程序的区别

主要区别在:有穷性、正确性和描述方法

程序可以是无穷的,例如OS。

算法是有穷的程序可以是错误的,算法必须是正确的

程序是用程序设计语言描述,在机器上可以执行

算法还可以用框图、自然语言等方式描述。

衡量的三个标准:

运行所花费的时间(算法的时间特性)

所占用存储空间的大小(算法的空间特性)

其他(可读性、易调性、健壮性、可移植性等)

时间和空间特性的巨大改进源于更好的数据结构或算法。

为什么要计算时间复杂度?

设:A1,A2和A3是求解同一问题的不同算法,其时间复杂度分别为:O(n), O(nlogn), O(N!)。

C1和C2为计算机,且C2的计算速度是C1的10倍。

不必追求高效算法,低效算法可由高速计算机来弥补的看法,是错误的。

基本类型:

1.整形:短整形(short

int)

整形(int)

长整形(long

int)

2.字符型(char)

3.浮点型:单精度型(float)

双精度型(double)

长双精度型(long

double)

4.布尔型(bool)

构造类型(C++)

指针类型

引用类型

空类型(void)