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