数据结构与算法
文章平均质量分 74
Shang.Liang
To Be A Better Programmer
展开
-
「数据结构 | 链表」单链表、双向链表节点操作演示动画
目录1. 什么是链表2. 链表数据结构 2.1 单链表数据接口(Java)2.2 双链表数据结构(Java)3. 单链表操作动画3.1 新增节点3.2 删除节点4. 双向链表操作动画4.1 新增节点4.2 删除节点链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。 2.2 双向链表数据结构(Java)单链表在已知单个节点的情况下,只能在该节点的后续链上增加新的节点,原创 2022-06-20 23:56:30 · 989 阅读 · 0 评论 -
Java LinkedList 用作 栈、队列、双端队列 的各类操作
目录LinkedList 数据存储的基础结构单 Node 信息图示LinkedList 数据存储关系图示LinkedList 作为栈使用push(E):入栈操作,在头部添加元素pop():出栈操作,取出头部元素并将其从栈中移除peek():查看头部元素,不影响栈的结构各方法操作效果图示LinkedList 作为队列使用add(E):添加元素到队列尾部peek():查看队列头部元素,不改变队列结构poll():返回头部元素,并从队列删除该元素LinkedL.原创 2021-06-15 12:09:05 · 1972 阅读 · 5 评论 -
[数据结构与算法] 快速排序-三向切分方式 JAVA 代码实现
目录1. 快速排序2.三向切分快速排序 - Java 实现3. 标准快速与三向切分快排效率对比4. 总结1. 快速排序标准快速排序动画及 JAVA 代码实现[点我查看]2.三向切分快速排序 - Java 实现 /** * 快速排序三向切分 * * @param nums 待排序数组 */ public void quickSortThreeWay(int[] nums) { sortThreeWa...原创 2021-04-14 11:45:53 · 242 阅读 · 0 评论 -
等概率随机取数算法 - 洗牌算法 | 链表随机节点 | 随机数索引 - Java 实现
等概率随机取数算法1. 洗牌算法2. 链表随机节点该题目来自力扣 382 题:链表随机节点 (https://leetcode-cn.com/problems/linked-list-random-node/)给定一个单链表,随机选择链表的一个节点,并返回相应的节点值。保证每个节点被选的概率一样。进阶:如果链表十分大且长度未知,如何解决这个问题?你能否使用常数级空间复杂度实现?示例:// 初始化一个单链表 [1,...原创 2020-05-29 19:13:42 · 973 阅读 · 0 评论 -
[数据结构与算法] 归并排序动画及 JAVA 代码实现
1. 快速排序动画配合如下所示的每阶段排序后结果,更便于理解:排序前 = [14, 2, 25, 17, 7, 38, 34, 5, 42, 15, 42]nums = [2, 14, 25, 17, 7, 38, 34, 5, 42, 15, 42]nums = [2, 14, 25, 17, 7, 38, 34, 5, 42, 15, 42]nums = [2, 14, 25, 7, 17, 38, 34, 5, 42, 15, 42]nums = [2, 14, 25, 7,.原创 2020-05-24 23:00:23 · 425 阅读 · 0 评论 -
[数据结构与算法] 快速排序动画及 JAVA 代码实现
1. 快速排序动画几种排序使用的同一组数据,发现这个快排动画效果不是太好尽量看代码吧,根据代码逻辑 debug 下帮助立理解2.快速排序 Java 实现/** * 快速排序 * * @param numbers 待排序数组 */public void insertionSort(int[] numbers) { int length = num...原创 2020-04-28 19:27:54 · 610 阅读 · 0 评论 -
[数据结构与算法] 插入排序动画及 JAVA 代码实现
1. 插入排序动画2. 插入排序 Java 实现public void selectionSort(int[] numbers) { int length = numbers.length; if (length <= 1) { return; } for (int i = 0; i < length - 1; ++...原创 2020-04-28 08:49:04 · 248 阅读 · 2 评论 -
[数据结构与算法] 选择排序动画及 JAVA 代码实现
1. 选择排序动画2. 选择排序 Java 实现重复(元素个数-1)次 把第一个没有排序过的元素设置为最小值 遍历每个没有排序过的元素 如果元素 < 现在的最小值 将此元素设置成为新的最小值 将最小值和第一个没有排序过的位置交换 ...原创 2020-04-26 21:35:05 · 264 阅读 · 0 评论 -
[数据结构与算法] 冒泡排序动画及 Java 代码实现
目录1. 冒泡排序动画2. 冒泡排序 Java 实现3. 总结时间复杂度空间复杂度排序稳定性1. 冒泡排序动画2. 冒泡排序 Java 实现public void bubbleSort(int[] numbers) { int size = numbers.length; if (size <= 1) { r...原创 2020-04-26 15:13:18 · 317 阅读 · 0 评论 -
[数据结构与算法] 算法复杂度分析 - 大O表示法 - 复杂度曲线
目录1. 大O表示法介绍2. 常见的大O复杂度2.1 O(1)常数时间复杂度2.2 O(logn) 对数时间复杂度2.3O(n)线性时间复杂度2.4O(nlogn) 线性对数时间负载度2.5O(c^n) 指数时间复杂度(c 为常数)2.6O(n^2) 平方时间复杂度2.7O(n!) 阶乘时间复杂度3. 常见时间复杂度曲线1. 大O表示...原创 2020-04-25 21:37:16 · 2207 阅读 · 2 评论