随笔分类 -  数据结构与算法

摘要:单链表 定义:链式存储的线性表。 链式:列表元素分散在内存各处,每个元素都包含数据域和指针域,并用指针来指向下一个元素。 分类 根据链表第一个结点是否存储数据,将链表分为带头结点的链表和不带头结点的链表。 带头结点链表 链表的第一个结点(又称头结点)不存储数据,数据从第二个结点开始存储。列表的第一个 阅读全文
posted @ 2021-10-29 17:31 流水自净 阅读(81) 评论(0) 推荐(1) 编辑
摘要:顺序表 定义 ​ 用顺序存储的方式实现线性表的顺序存储。把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。 ​ 顺序表这种物理位置相邻的数据结构是基于数组实现的。数据结构作用的数据元素是数组中的元素,而数组是数据对象,故而对顺序表的操作,即是对单个数组进行 阅读全文
posted @ 2021-10-19 20:23 流水自净 阅读(72) 评论(0) 推荐(0) 编辑
摘要:线性表 定义 线性表是具有相同数据类型的 n(n>=0) 个数据元素的有限序列。其中 n 为表长, 当 n=0 时线性表是一个空表。若用 L 命名线性表,其一般表示为: L = (a1, a2, a3, …, an) 数字下标为元素的位序。位序从 1 开始。位序为 1 的元素称为表头元素,位序最大的 阅读全文
posted @ 2021-10-19 14:13 流水自净 阅读(76) 评论(0) 推荐(0) 编辑
摘要:算法效率的度量 空间复杂度 问题规模n与内存开销的关系,空间复杂度用 S(n) 表示,S 即 space,其值使用大O表示法:O(n) 空间复杂度与算法所需的数据量有关,而与算法结构(顺序、分支和循环)无关,因为算法代码总是占用一块固定大小的内存,而数据是动态变化的,需要足够的内存来存放。 空间复杂 阅读全文
posted @ 2021-10-19 13:19 流水自净 阅读(187) 评论(0) 推荐(0) 编辑
摘要:算法效率的度量 事后统计:不可取 事前预估:预估算法开销与问题规模之间的关系。 时间复杂度 算法时间开销T(n)与问题规模 n之间的关系。 对于顺序和分支语句,n 和 T(n) 为常数。 对于循环,n 与循环次数与循环嵌套层数有关,T(n) 是不确定的。通常以最坏时间复杂度来代表算法的时间复杂度。即 阅读全文
posted @ 2021-10-19 12:01 流水自净 阅读(253) 评论(0) 推荐(0) 编辑
摘要:算法基本概念 程序 = 数据结构 + 算法 算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每条指令表示一个或多条操作。比如冒泡排序就是一种解决排序问题的算法。 算法的特性 有穷性:一个算法必须在执行有穷步之后结束,且每一步都可在有穷时间内完成。 确定性:算法中每条指令必须有确切的含义 阅读全文
posted @ 2021-10-18 23:53 流水自净 阅读(297) 评论(0) 推荐(0) 编辑
摘要:数据结构基本概念 数据:信息的载体,能被计算机程序识别和处理,用于表示客观事物的二进制数字的集合,是计算机程序加工的原料。 数据元素:数据的基本单位,一个数据元素可由若干数据项组成。 数据项:构成数据元素的不可分割的最小单位。 数据对象:具有相同性质的数据元素的集合,是数据的一个子集。 数据结构:数 阅读全文
posted @ 2021-10-18 23:35 流水自净 阅读(420) 评论(0) 推荐(0) 编辑