24考研数据结构-——绪论2

这篇具有很好参考价值的文章主要介绍了24考研数据结构-——绪论2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.4 算法的时间复杂度

1.4.1 渐近时间复杂度

一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作T(n)=O(n),它表示随问题规模n的增大而增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称时间复杂度。

大O表示“同阶”,同等数量级。即:当 n->∞时,二者之比为常数

1.4.2 常对幂指阶

24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
表示图

24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习

1.4.3 时间复杂度的计算

  • 顺序执行的代码只会影响常数项,可以忽略
  • 挑选循环中的一个基本操作分析执行次数与n的关系即可
  • 对于多层嵌套循环,只需要关注最深层的循环(嵌套最深的,即将每个循环执行次数相乘)

1.4.4 最好与最坏时间复杂度

24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习

24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习

1.5 算法的空间复杂度

1.5.1 空间复杂度

  • 无论问题规模怎么变换,算法与运行所需的内存空间都是固定的常量,则空间复杂度为S(n) = O(1)
  • 在计算空间复杂度时,只需关注存储空间大小与问题规模相关的变量

24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习

1.5.2 函数递归调用(未总结)

参考链接: 函数调用栈

1.5.3 存储地址

1.5.3.1 内存高低地址与高低位

参考: 内存高地址与低地址、变量的高位和低位

24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
大端法就是,数据的前部(对于int型就是数据的高位)存在低地址

1.5.3.2 用户程序虚拟地址空间分布

24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习

24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
Eg:分析代码中的常量、 变量所属的段
24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
本地编译结果
24考研数据结构-——绪论2,408,# 数据结构,数据结构,笔记,学习
结果分析:文章来源地址https://www.toymoban.com/news/detail-600658.html

  • i1是已经初始化的全局变量,故i存于数据段,且类型为int,四字节三十二位。
  • i2是未初始化的全局变量,未设置初始值故为0(BSS段全部置零),类型为int,且由于BSS段在数据段上方,故i2(407A20)地址大于i1(403010)。
  • i3是已经初始化的静态全局变量,所以i3存于数据段,类型为int,并且因为在i1之后声明,所以i3(403014)的地址高于i1(403010)的地址四个字节。
  • i4是在fun()里定义的局部变量,所以至于该函数的栈,且栈段位于最上方,所以i4的地址大于之前定义的i1 i2 i3。
  • i5同i4是位于fun()里定义的局部变量,所以i5同样位于栈段,由于栈段是向下延申的,所以i5(62FDDC)的地址小于i4(62FE00)的地址。
  • i6是在fun()里声明的静态局部变量,所以位于数据段,又因为是在i3之后声明在数据段里的所以i6(403018)地址比i3(403014)高四个字节。
  • Str1是在fun()里声明的局部指针变量char*,所以str1变量本身存放在栈段,但是变量中指向的字符串常量”ABCDE”地址,因此%P的形式打印出来的是str1(40400)所存储字符串的地址,所以打印出来的是一个位于数据段地址。又因为在i6(403018)之后声明,所以地址高于i6。
  • Str2是在fun()里声明的局部变量,所以位于栈段,且因为栈段向下延申,所以str2(62FDD0)的地址小于i5(62FDDC)的地址。
  • Pi是在fun()里声明的局部指针变量,并且为它分配了空间,指针本身位于栈段,但是它不同于str1,str1所指向的是位于数据段里的字符串”ABCDE”的地址。它指向malloc动态申请的地址空间,申请的空间位于堆段,所以%P打印出来的是位于堆段的地址,所以地址位于BSS段与栈段之间。

到了这里,关于24考研数据结构-——绪论2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【数据结构】24王道考研笔记——栈、队列和数组

    【数据结构】24王道考研笔记——栈、队列和数组

    基本概念 栈是 只允许在一端进行插入或删除操作 的线性表。 栈顶:线性表允许进行插入删除的那一端 栈底:固定的,不允许进行插入删除的那一端 空栈:不含任何元素的空表 特点: 先进后出 基本操作: 常考题型: [外链图片转存失败,源站可能有防盗链机制,建议将图片

    2024年02月09日
    浏览(38)
  • 一篇学完:王道考研408数据结构(全)

    一篇学完:王道考研408数据结构(全)

    PDF版本附在  lengyueling.cn 对应 文章结尾,欢迎下载访问交流 数据结构在学什么 如何用程序代码把现实世界的问题信息化 如何用计算机高效地处理这些信息从而创造价值 数据结构的基本概念 什么是数据: 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到

    2023年04月08日
    浏览(14)
  • 【数据结构入门精讲 | 第九篇】考研408排序算法专项练习(一)

    【数据结构入门精讲 | 第九篇】考研408排序算法专项练习(一)

    前面几篇文章介绍的是排序算法,现在让我们开始排序算法的专项练习。 1.希尔排序是稳定的算法。(错) 解析:稳定性是指如果两个元素在排序前后的相对顺序保持不变,那么这个排序算法就是稳定的。对于具有相同的元素,排序后它们的相对位置应该保持不变。

    2024年02月03日
    浏览(14)
  • 【23考研】计算机408数据结构代码题强化阶段划重点(王道书)

    视频链接:【23考研】10分钟带你整理408数据结构强化阶段代码题复习重点 本篇只适合考408的同学,请自主命题的同学自觉右上角×掉 因为王道书为了照顾自主命题的同学,所以很多算法也给出了代码实现,实际上对于考408的同学,很多代码是不需要掌握的,毕竟408的代码题没

    2024年02月15日
    浏览(30)
  • 【数据结构入门精讲 | 第十六篇】并查集知识点及考研408、企业面试练习

    【数据结构入门精讲 | 第十六篇】并查集知识点及考研408、企业面试练习

    上一篇中我们进行了散列表的相关练习,在这一篇中我们要学习的是并查集。 在许多实际应用场景中,我们需要对元素进行分组,并且在这些分组中进行查询和修改操作。比如,在图论中,我们需要将节点按照连通性进行分组,以便进行最小生成树、最短路径等算法;在计算

    2024年02月03日
    浏览(22)
  • 24考研数据结构-线性表4

    24考研数据结构-线性表4

    2.4.4单链表的查找操作(默认带头节点,不带头节点后续更新) 2.4.4.1 按位查找操作 GetElem(L, i): 按位查找操作,获取表L中第i个位置的元素的值; 注意: 1.边界情况 i=0,返回头节点;iL.length,返回null; 2.ji即查找到j = i 的节点,就是第i个节点。 3.平均复杂度O(n) 2.4.4.2 按值

    2024年02月16日
    浏览(7)
  • 24考研数据结构-图的存储结构邻接矩阵

    24考研数据结构-图的存储结构邻接矩阵

    【1】顶点的结点结构 ——————— | data | firstarc | ——————— data数据域:储存顶点vi firstarc链域:指向链表中第一个结点 【2】弧的结点结构 —————————— | adjvex | info | nextarc | —————————— adjvex邻接点域:与顶点vi邻接的点在图中的位置 info数据域

    2024年02月14日
    浏览(7)
  • 24考研数据结构-数组和特殊矩阵

    24考研数据结构-数组和特殊矩阵

    数据结构是计算机科学中的基础概念,它涉及组织和存储数据的方式以及对数据的操作。在数据结构中,数组和特殊矩阵是两种常见的数据组织形式。本文将对数组和特殊矩阵进行介绍,并讨论它们在实际应用中的特点和用途。 数组是一种线性数据结构,它由相同类型的元素

    2024年02月14日
    浏览(9)
  • 【考研复习】24王道数据结构课后习题代码|第3章栈与队列
  • 【考研复习】24王道数据结构课后习题代码|2.3线性表的链式表示

    删除结点:1、2、4 就地逆置:5、 合并链表 分解链表:10、11、 去除重复元素:12、 并集:14、15 循环链表:17、18、19、20 头插法、尾插法重点基础必掌握。 判断是否有环:21 用函数递归调用删除结点。 注意删除结点的时候可能断链。 利用函数调用的特性反向输出。 设置保

    2024年02月13日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包