1. 数据结构
1.1 定义
数据结构是指计算机中数据的组织、管理和存储方式。它不仅包括数据元素的存储方式,还包括数据元素之间的关系,以及对数据进行操作的方法和算法。数据结构的选择和设计直接影响算法的效率和程序的性能,是计算机科学与编程中非常重要的基础
1.2 数据结构的分类
(1)逻辑角度
1. 线性结构(一对一)表、数组、链表、队列、栈
2. 树型结构(一对多)二叉树
3. 图形结构(多对多)网状结构
(2)存储角度
1. 顺序存储:采用一段连续的内存空间保存元素(数组)
优点:空间连续,访问方便
缺点:插入删除需要移动大量元素、需要预分配内存空间,容易造成存储空间碎片
2. 链式存储:采用一组非连续的内存空间保存元素(链表)
优点:插入和删除数据方便、不需要预分配内存
缺点:访问元素效率低
3. 散列存储(哈希存储)将数据元素的存储位置与关键码之间建立确定对应关系从而实现查找的存储方式
4. 索引存储:通过关键字构建索引表、通过索引表来找到数据的存储位置
补充:
1. 重点学习内容
顺序表、链式表、顺序栈、链式栈、顺序队列、链式队列、二叉树、哈希表
2. 程序 = 数据结构 + 算法
2. 分析算法效率的两个指标
2.1 时间复杂度
是指算法在执行过程中所需时间的量度。它衡量的是算法的执行时间随输入规模的变化情况,通常用大O记号表示,如O(n)、O(log n)等
2.2 空间复杂度
是指算法在执行过程中所需存储空间的量度。它衡量的是算法的内存使用情况,通常也用大O记号表示。