数据结构与算法--绪论

相关术语:

  1. 数据:
    所有能被计算机所识别的符号集合

识别:输入,输出,存储,处理,显示
符号:数字,字母,汉字,语音,图形,图像

2、 数据元素:
是数据(集合)当中的一个“个体”
是数据讨论中的基本单位
2. 数据项:
是数据讨论的最小单位
在这里插入图片描述在这里插入图片描述5. 数据结构:
带结构的数据元素的集合
结构:数据元素之间的关系(即元素之间的运算和运算规则)
在这里插入图片描述在这里插入图片描述
3. 逻辑结构:主要用于人们交流以及指导算法的分析和设计
在这里插入图片描述
7. 存储结构又称物理结构,主要用于算法的实现
在这里插入图片描述顺序:借助数组
链式:借助数据元素地址的指针

因为顺序存储存取数据元素的速度非常快,其地址计算公式:
在这里插入图片描述又因为每个数据访问的速度相同因此顺序结构又称随机存取结构

逻辑结构为线性 的链式结构,如下图L:
在这里插入图片描述

注意:集合,线性,图,树结构的都既可以用顺序结构又可以用链式结构来存储数据和关系,至于用哪种主要取决于算法的实现和时间空间哪个更优。
 存储结构可以单独使用也可以组合使用
  1. 数据结构的操作:又称运算
    在这里插入图片描述运算的定义建立在逻辑结构上,但是运算的实现建立在存储结构上
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述抽象数据类型不用考虑存储结构,所以可以用三元组来表示。
    在这里插入图片描述在这里插入图片描述

算法分析:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将语句执行次数称为计算步。
在这里插入图片描述
n为问题的规模

在这里插入图片描述
为了在分析时间复杂度时只分析规模的因素,而抛弃输入的因素,就有了如下规定:

在这里插入图片描述

只分析三种情况下(三种不同的输入)的时间复杂度
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
渐进上界记号O:表示f(n)的时间复杂度比g(n)小一个常数倍
渐进下界记号:表示f(n)的时间复杂度比g(n)大一个常数倍
紧渐进界记号:表示f(n)和g(n)的时间复杂度几乎相等
渐进性符号所代表的东西是一类集合
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多项式的时间复杂度等于最高项的时间复杂度
对数的时间复杂度无论底是什么,其复杂度相等
对数时间复杂度低于次方时间复杂度
次方时间复杂度低于指数时间复杂度

i=1;

while(i<n)i+=i;

这里复杂度这里其实是2部分:i=1的复杂度是1,while的复杂度需要计算,肯定大于1,根据我们前面总结的顺序执行流程复杂度规则,整个复杂度取大的,应该是while循环的复杂度。while循环复杂度我们不会计算,但我们会计算循环次数:i的值变化是:1,2,4,8...2^k,最后一项i=2^(k-1)>=n退出循环,这时2^(k-1)>=n,k>=logn+1,所以循环k=logn+1次,则退出循环,所以时间复杂度就是O(logn)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

With Order @!147

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值