数据结构基础

1. 数据结构

数据的逻辑结构,存储结构及操作(数据的运算)

1.1 数据

数据:不只是一个单纯的数值,而是类似于一个集合的概念

数据元素:是数据的基本单位,由若干个基本项组成

数据项:是数据的最小单位,描述数据元素的信息

 注意:节点就是数据元素

 整个表为数据,每一行为数据元素,单个编号等信息为数据项

 1.2 逻辑结构

数据之间的逻辑规律和数据之间的关系

数据之间的关系:

1)线性关系 ----》 线性结构 ------》一对一 ------》线性表

2)层次关系 ------》树形结构 ---------》一对多 ---------》 树

3)网状关系 -------》 图状结构 --------》 多对多 ----------》 图

 1.3 存储结构

数据结构的逻辑结构在计算机中的具体实现

1.3.1 顺序存储结构

数组:在内存当中一段连续的内存空间中保存数据(如c语言中的一维数组)

1.3.2 链式存储结构

特点:数据在内存中是不连续的,通过指针进行连接

链表:

struct node_t

{

int date; //数据域

struct node_t * next; //指针域,指向自身

};

struct node_t A;

struct node_t B;

struct node_t C;

A. next = &B;

B. next = &C;

1.3.3 索引存储结构

提高查找速度

索引表 + 数据文件

1.3.4 散列存储结构

数据在存储的时候与关键码之间存在某种对应关系

存的时候按照对应关系存

取的时候按照对应关系取

2. 算法

解决问题的思想方法

2.1 算法与程序

算法:解决问题的思想方法

程序:用计算机语言对算法的具体实现

2.2 算法与数据结构

算法 + 数据结构 = 程序

算法的设计:取决于选定的逻辑结构

算法的实现:依赖于采用的存储结构(顺序、链式)

2.3 算法的特性

1)有穷性:算法的执行步骤是有限的

2)确定性:算法的每一步都是有明确含义的

3)可行性:算法能够在有限的时间内完成

4)输入

5)输出

2.4 评价算法好坏

正确性:保证算法可以正确完成功能

易读性:容易被解读

健壮性:容错处理

高效性: 执行效率,算法执行快慢容易受到计算机性能的影响,不可以作为评判 算法高效性的标准,这通过可执行语句重复执行次数来衡量算法是否高 效。(时间复杂度)

低存储型:占用空间小(空间复杂度)

2.5 时间复杂度

算法的可执行语句重复执行的次数

通常时间复杂度用一个问题规模函数来表达

T(n) = O(f(n))

T(n) //问题规模的时间函数

n 问题规模

O //时间数量级

f(n) //算法的可执行语句重复执行的次数 用问题规模n的某个函数f(n)来表达

计算大O的方法

1) 根据问题规模n写出表达式f(n)

2) 只保留最高项,其他项舍去

3) 系数化为1

4) 如果只有常数项,将其置为1

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值