
数据结构
星火燎原2016
Android 开发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
杠上数据结构 - 排序
杠上数据结构 - 排序 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。 空间复杂度:是指算法在计算机 冒泡排序 每次 比较相邻 的两个元素,后一个元素值小于前一个元素值(升序),则交互位置,n 个元素需要比较 n-1 趟,每一趟需要比较 (n-当前第几趟) 次。 如数组 {23, 1, 98,4,18,3 } 第一趟: 第一次原创 2020-05-23 21:21:05 · 424 阅读 · 0 评论 -
杠上数据结构 - 二叉树
二叉树在面试过程中出现的频率非常高,因此熟练掌握二叉树是吊打面试官的必备技能。 基本认识 二叉树:是节点的一个有限集合,该集合要么为空,要么由一个根节点加上左子树和右子树组成。 特点: 每个节点最多有两颗子树,即二叉树不存在度大于 2 的节点。 二叉树的子树有左右之分,左子树在左,右子树在右。 二叉树的存储结构 二叉树的存储结构有: 顺序存储 链式存储 顺序存储 顺序存储是使用一维数组存...原创 2020-04-24 21:29:05 · 348 阅读 · 0 评论 -
Java 数据结构 - 排序
冒泡排序 思想: N 个元素需要排序 N-1 趟, 每趟比较相邻的两个元素,如果前一个元素和后一个元素不满足大小顺序规则,则交换位置,这样一趟下来,一趟中的最大(最小)的元素就 “沉” 到最后面的位置。 执行 M 趟排序后,整个元素序列中的最后面的 M 个元素就排好顺序了,剩下就只需要将前面的 N-M 个元素排好序即可。 private void sortBubble(int[] a...原创 2018-04-06 10:11:33 · 189 阅读 · 0 评论 -
Java 数据结构 - 栈
关于栈 栈是一种后进先出的数据结构,栈限制只能在一端进行插入和删除。 栈顶:进行插入和删除操作的一端。 栈底: 不变的一端。 栈的数组实现 使用数组来存储栈中的元素,push 的时候,直接添加一个元素到 数组 arr[n] 中 , pop 的时候直接返回 数组最后一个元素 s[n] 。 /** * 基于数组实现的栈 */ public class ArrayStack&...原创 2018-04-21 23:10:09 · 291 阅读 · 0 评论 -
杠上数据结构 - 线性表
介绍 线性表 : 是由零个或多个数据元素组成的有限序列。 线性表有两种实现方式: 顺序结构存储 : 指的是一段地址连续的存储单元依次存储表中的数据元素。 链式结构存储 : 指的是各个元素存储的位置不是连续的, 他们之间通过指针域进行关联。 线性表顺序存储 线性表的顺序存储一般使用 数组 实现, 通过分配一块地址连续的内存空间来存储数据元素。 为方便和链式存储结构实现相同的操作,现将对表的操作...原创 2019-05-02 21:12:22 · 209 阅读 · 0 评论 -
杠上数据结构 - 栈
介绍 **栈 : **是 一种只允许在一端进行插入,删除的线性表,具有先进后出的特性。 通常,栈的操作端称为 栈顶,另一端称为 栈底。栈的插入称为 进栈(push), 栈的删除操作称为 出栈(pop)。 栈的存储结构 既然栈的本质是一种线性表,那么栈的存储结构也有两种: 顺序存储结构(顺序栈) 链式存储结构(链式栈) 栈顺序存储结构 栈的顺序存储结构一般使用 数组 实现。数组中的第一个元素作...原创 2019-05-03 21:18:04 · 223 阅读 · 0 评论 -
杠上数据结构 - 树
线性与非线性 **线性:**指的是元素之间是 “一对一” 的关系,比如只有唯一 一个"前驱"和唯一一个"后继"。 非线性: 指的是元素之间是一对多的关系,比如 “树” 中节点可能有多个孩子节点,“图” 中可能有多个元素与之关联。 树 树是一种非线性的数据结构,是由 n (n >= 0)个节点组成的有限集合。如果 n = 0,则树是空树。除了根节点外,其余节点被分成 M (M > 0) ...原创 2019-07-16 21:04:59 · 244 阅读 · 0 评论