[数据结构笔记]绪论

绪论

1、基本概念和术语

  • 数据:能被计算机识别,并输入给计算机处理的符号的集合。

  • 数据元素:组成数据的基本单位。

  • 数据项:一个数据元素可以由若干个数据项组成。

    数据项是数据不可分割的最小单位。

  • 数据对象:是性质相同的数据元素的集合,是数据的子集。

    //性质相同:是指数据元素具有相同数量和类型的数据项。

    既然数据对象是数据的子集,在实际应用中,处理得数据元素通常具有相同性质,在不混淆的情况下我们习惯将数据对象简称为数据。

  • 数据结构:结构,简单理解就是关系;严格来说是指各个组成部分的相互搭配和排列的方式。而数据结构是相互之间存在一种或多种特定关系的数据元素的集合

2、逻辑结构与物理结构

按照视点不同分类,将数据结构分为逻辑结构和物理结构。

逻辑结构

是指数据对象中数据元素之间的相互关系。分为以下四种:

  1. 集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系

  2. 线性结构:线性结构中的数据元素之间是一对一的关系。

  3. 树形结构:树形结构中数据元素存在一对多的关系。

  4. 图形结构:图形结构中的数据元素是多对多的关系。

物理结构(存储结构)

是指数据的逻辑结构在计算机中的存储形式。

数据的存储结构应正确反映数据元素之间的逻辑关系。而如何存储数据元素之间的逻辑关系,是实现物理结构的重点和难点。

  1. 顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

  2. 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反应其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。

算法

基本特性:

  • 有穷性:总在执行有穷步后结束,且每一步在有穷时间内完成。(不是无限循环也不是数学概念)
  • 确定性:每条指令都有确切的含义,不存在二义性。
  • 可行性:通过已实现的基本操作执行有限次。

设计要求:

  • 正确性:满足问题需求,对于任何合法输入算法都有正确结果。
  • 可读性:易理解易实现。
  • 健壮性:对于非法输出的抵抗能力。
  • 效率与低存储量需求

描述方法:自然语言、流程图、程序设计语言、伪代码。

1、算法时间复杂度

时间复杂度:在进行算法分析时,语句总的执行次数 T(n)是关于问题规模n的函数,进而分析 T(n)随n的变化情况并确定 T(n) 的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)= O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中 f(n)是问题规模n的某个函数。

推导大O阶方法

  1. 用常数1取代运行时间中的所有加法常数。

  2. 在修改后的运行次数函数中,只保留最高阶项。

  3. 如果最高阶项存在且不是1,则去除与这个项相乘的常数。得到的结果就是大O阶。

通常,除非特别指定,我们提到的运行时间都是最坏情况的运行时间。

 

 


制作:BDT20040

posted @ 2021-11-12 13:32  流白李  阅读(147)  评论(0编辑  收藏  举报