《大话数据结构》之第一、二章

第一章:数据结构绪论

程序设计=数据结构+算法

  1. 数据

可以输入到计算机中,并能被计算机程序处理的符号集合(包括数值类型和声音,图像,视频等非数值类型)

  1. 数据元素(记录)

组成数据的,有一定意义的基本单位。可以理解为class的父子类关系,如class Cat/Dog/Duck extends Aniaml;猫,狗,鸭是动物类的数据元素

  1. 数据项

一个元素可以由若干个数据项组成,数据项是不可分割的最小单位。可以理解为,一个子类的成员变量。如下述眼睛,姓名,性别等为数据项

class Cat extends Animal{
 	eyes;
	name;
	sex;
	 ...
}
  1. 数据对象(通常简称数据)

具有相同数量和类型的数据项的数据元素的集合,是数据的子集

  1. 数据结构

相互之间存在一种或多种特定关系的数据元素的集合。
数据结构分为逻辑结构和物理结构

  1. 逻辑结构:数据对象中数据元素之间的关系
  • 集合结构:数据元素共处同一集合但两两无关
  • 线性结构:一对一
  • 树形结构:一对多
  • 图形结构:多对多
  1. 物理结构(存储结构):数据的逻辑结构在计算机中的存储形式
  • 顺序存储结构:数据元素地址连续,联系数组考虑
  • 链式存储结构:数据存放的存储单元不一定连续,存储关系和逻辑关系无关。但需要一个指针存放下一个数据元素的地址,以此相关联

第二章:算法

  1. 算法的特性
  • 输入输出:>=0个输入,>=1个输出
  • 有穷性
  • 确定性:每一步不会出现二义性
  • 可行性
  1. 算法的设计要求
  • 正确性
  • 可读性
  • 健壮性:数据不合法时能做出相关处理
  • 时间效率高,存储量低
  1. 效率度量方法
  • 事后统计法
  • 事前分析估算法(推荐)
  1. 时间复杂度(一般指最坏时间)
  • 记为:O(n)
  • 推导大O阶:用1取代加法常数;保留最高阶;最高阶项不是1,就去除常数系数
  • O(1):常数阶;O(n):线性阶;O(n2):平方阶;O(logn):对数阶;O(2n):指数阶
  • O(1)<O(logn)<O(n)<O(nlongn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)
  • tips:O(logn):程序影响了循环次数。如下,即为多少个2相乘后>n,2x=n
int count=1;
while(count<n){
	count=count*2;
}

猜你喜欢

转载自blog.csdn.net/Cenny_/article/details/106841442