数据结构第一节

本文介绍了数据结构的两大类型——逻辑结构和存储结构,包括线性与非线性结构、顺序存储和链式存储,并探讨了算法的时间复杂度和空间复杂度。重点讨论了如何分析和预估时间复杂度,以及在计算时应注意的要点。同时,提到了算法原地工作的概念,即算法所需辅助空间与输入数据量成常数比例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构分为逻辑结构与存储结构

一,逻辑结构

又分为线性结构和非线性结构。

线性结构有线性表,栈和队列,字符串,数组。

非线性结构有树(具有多个分支的层次结构),图(分为向图和无向图),集合。

二,存储结构(物理结构)

分为顺序存储结构(数组)和链式存储结构(结构)

三,时间复杂度T(n)=O(n)

通常采用事前预估算法,与问题规模(n),时间开销,语句,频度有关

其中时间开销和问题规模,通过分析两者的关系,分析算法

计算时注意:

①只考虑阶数n高的部分

②可以忽略n前的系数

③O表示同阶,同一数量级,当n趋于无穷时,两者比为常数。

④加法规则:多项相加,只保留最高阶的项且系数为1

乘法规则:多项相乘,都保留。

⑤大小比较按“常对幂指阶”比较

⑥顺序执行的代码只会影响常数项可以忽略

只挑循环结构的基本操作与n的关系

嵌套函数只考虑最深层循环的循环次数与n的关系

⑦运算的实现依赖于存储结构

四,空间复杂度S(n)=O(f(n))

即算法所需存储空间的度量

给变量分配存储空间(程序代码大小固定)当n无论多大所需内存空间都是固定的常量。

五,算发原地工作

固定的常量,所需要的辅助空间相对于输入数据量而言为一个常数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值