数据结构-读书笔记

 

 

第一章 绪论 数据结构概念

·数据与数据元素
  数据是计算机描述客观事物的符号
  数据的基本单位是数据元素,也称为结点、记录、表目等。

数据项是有独立含义数据最小单位,有时称作域、字段等。

数据元素可n个数据项组成,
·数据结构
  数据结构是有关系的数据元素的集合,即数据的组织形式。 

数据结构包括数据元素的三个方面:

逻辑结构、存储结构和运算。


  逻辑结构是从逻辑角度反映数据之间的关系,

与数据的存储无关,是独立于计算机的。

因此,数据的逻辑结构可看作是数字模型。


  存储结构是指数据的逻辑结构在计算机存储器中的映像表示,即在能够反映数据逻辑关系的前提下,数据在存储器中的存储方式。


  数据的运算也称为抽象运算,只考虑操作的功能,不考虑如何完成;

只在确定了存储结构后,才会具体实现这些操作。

也即,抽象运算定义在逻辑结构上而实现在存储结构上。


2. 逻辑结构的4种基本形态
·集合结构:
  包含。
·线性结构:
  11
·树形结构:
  1N
·网状结构(图结构):
  NN
  
由于集合结构没有意义,所以只讨论其它三种逻辑结构。

逻辑结构可分为线性结构和非线性结构两类,

线性结构可用一个线性序列表示出来,否则称为非线性结构。

树形结构和图结构就属于非线性结构。


3.存储结构的4种方式 
·顺序存储结构:
  数组来描述。
·链式存储结构:
  指针类型来描述。
·索引存储结构:
  索引表来描述
·散列存储结构(也称为哈希存储结构):
   由关键字直接计算出存储地址。


  实质上,索引存储结构和散列存储结构可看作前两种结构的衍生。4种基本存储结构既可单独使用也可组合使用。


4. 算法的定义与描述
  算法是建立在数据结构基础上对特定问题求解步骤的一种描述,是若干条指令组成的有限序列。

算法必须满足5个性质:
·确定性: 
·有穷性:
·可行性:
·输入:
·输出:
  一个算法有一个或多个输出,它们是与输入有特定关系的量。


  一个算法

可采用自然语言如英语、汉语描述,

如果用计算机语言描述,那么就表现为一个程序。

也可以采用图形方式如流程图描述;

 

算法必须采用与之相适应的数据结构才能有效的求解问题。
  

算法与程序的主要区别?

一个程序通常由某种程序语言书写的一个计算过程

一个算法则并不一定表现为一个计算机程序,

它可以用不同方式和不同语言来描述。


5. 算法分析和复杂度计算
  算法设计,算法分析

算法分析主要研究,比较各种算法的性能与优劣。

 

算法分析的两个主要方面

时间复杂度:算法执行基本操作的次数

空间复杂度:算法执行期间占用的存储单元


     语句的频度就是重复执行的次数。

所有语句的频度之和记做T(n)

它是该算法所求解问题规模的函数。

当问题的规模趋向无穷大时,

T(n)的数量级称为时间复杂度,记作T(n)=O(f(n))
   “O”表示 T(n)的量级,

数学上:若T(n)f(n)为两个函数,存在正的常数Cn0,使得当n≥n0时,都满足:
  0≤T(n)≤C*f(n)


  程序分析法则为:
·    执行一条读写或赋值语句 = O(1)
·依次执行一系列语句所用时间 采用求和准则;
·判断语句耗时主要是执行语句所用的时间,

检验条件还需O(1); 还是看执行的次数吧
·循环语句的运行时间常用乘法准则。
  若算法的两个部分的时间复杂度  [什么意思]

T1(n)=O(f(n)

T2(n)=O(g(n))

“O”下的求和准则为:T1(n)+T2(n)=O(max(f(n),g(n)))
  大“O”下的乘法准则为:T1(n)*T2(n)=O(f(n)*g(n))

===================================  第一章 绪论 结束==========

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值