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

2021-07-28  本文已影响0人  喜忧参半

一、基本知识

计算机科学 早期定义为:研究算法的科学
计算机科学 近期定义为:研究数据的科学

程序=算法+数据结构
数据结构是设计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倍。

复杂度 C1执行时间 C2执行时间 执行时间的关系
O(n) N11 N21 N21 = 10*N11
O(nlogn) N12 N22 N22=10*N12
O(N!) N13 N23 N23=N13+小常数

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

上一篇下一篇

猜你喜欢

热点阅读