
数据结构学习笔记(第一章:概论)
发布日期:2021-05-07 23:08:10
浏览次数:15
分类:精选文章
本文共 880 字,大约阅读时间需要 2 分钟。
数据结构与算法基础
数据结构的三要素
数据结构的三要素是逻辑结构、物理结构和数据运算。理解这些要素,有助于我们更好地掌握数据结构的核心概念。
逻辑结构
逻辑结构描述了数据元素之间的关系。常见的逻辑结构包括线性结构和非线性结构。线性结构如数组、链表和栈,非线性结构如树形结构和图形结构。集合、树和图是非线性结构的基础,理解这些结构是数据结构学习的重要基石。
数据的存储结构
物理结构决定了数据在存储设备上的分布方式。常见的存储结构包括:
- 顺序存储:逻辑上的相邻元素按物理顺序存储。
- 链式存储:元素之间通过指针连接,逻辑相邻的元素可能分布在存储单元的不同位置。
- 索引存储:通过索引表将存储单元与逻辑位置关联起来。
- 散列存储(哈希存储):利用特定的公式计算元素的存储位置,提高存储效率。
数据的运算
数据运算包括逻辑运算和物理运算。逻辑运算描述了数据结构的功能,物理运算则涉及具体的存储和操作步骤。例如,栈的推弹运算属于逻辑运算,而数组的存储和访问操作涉及物理运算。
算法的基本概念
算法是解决问题的明确步骤序列。一个高效的算法能够在有限时间内完成任务,算法的效率直接影响系统的性能。
算法效率的度量
算法的效率通过时间复杂度和空间复杂度来衡量。
时间复杂度
时间复杂度描述算法运行时间与问题规模n的关系。常见的时间复杂度包括O(1)、O(log n)、O(n)、O(n log n)等。时间复杂度的度量规则包括加法规则、乘法规则和常对幂指阶。
空间复杂度
空间复杂度衡量算法运行过程中所占用的额外空间。常见的空间复杂度包括O(1)、O(log n)、O(n)等。空间复杂度的加法规则与时间复杂度类似。
实际应用示例
合并两个升序链表为一个降序链表的最坏情况时间复杂度是O(max(m, n))。合并过程中需要进行m+n次比较操作。在最坏情况下,比较次数等于较长链表的长度,因此时间复杂度为O(max(m, n))。
总结
数据结构和算法是计算机科学的基础,理解它们的三要素和效率度量是掌握专业知识的关键。在实际应用中,选择合适的数据结构和算法能够显著提升系统性能。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月14日 14时28分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C语言的6大基本数据类型!(学习C语言小白必备!!)
2019-03-05
vue中导入导入 Mint-UI的注意事项
2019-03-05
Vue——mock模拟数据的使用
2019-03-05
Nginx配置反向代理与负载均衡
2019-03-05
高阶函数reduce
2019-03-05
Lionheart万汇:布林线双底形态分析技巧
2019-03-05
Lionheart万汇:台积电大幅提升资本开支,2021有望续创辉煌
2019-03-05
Lionheart万汇:新年消费结构中贵金属交易机会
2019-03-05
LHCM万汇:在需求上升中,美国贸易赤字创下历史新高
2019-03-05
Mybatis的入门01
2019-03-05
Vue01常见指令,axios
2019-03-05
Vue路由嵌套刷新后页面没有重新渲染
2019-03-05
Vue使用bus进行组件间、父子路由间通信
2019-03-05
数据库三个级别封锁协议
2019-03-05
函数与指针分析、回调函数
2019-03-05
类的实例
2019-03-05
tomcat加载部署webapps目录下的项目
2019-03-05
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
2019-03-05
方法重写
2019-03-05
Threading Programming Guide(多线程编程指南)
2019-03-05