Java算法
文章平均质量分 95
Java算法
小飞鱼号
这个作者很懒,什么都没留下…
展开
-
线性表(二)
文章目录1. 顺序表1.1 顺序表的实现1.2 顺序表的遍历1.3 顺序表的容量可变1.4 顺序表的时间复杂度1.5 java中ArrayList实现2.链表2.1 单向链表2.1.1 单向链表API设计2.1.2 单向链表代码实现2.2 双向链表2.2.1 结点API设计2.2.2 双向链表API设计2.2.3 双向链表代码实现2.2.4 java中LinkedList实现2.3 链表的复杂度分析2.4 链表反转2.5 快慢指针2.5.1 中间值问题2.5.2 单向链表是否有环问题2.6 循环链表2.7原创 2022-02-06 17:45:57 · 192 阅读 · 0 评论 -
平衡树(六)
文章目录平衡树1. 2-3查找树1.1 2-3查找树的定义1.2 查找1.3 插入1.3.1 向2-结点中插入新键1.3.2 向一棵只含有一个3-结点的树中插入新键1.3.3 向一个父结点为2-结点的3-结点中插入新键1.3.4 向一个父结点为3-结点的3-结点中插入新键1.3.5 分解根结点1.4 2-3树的性质1.5 2-3树的实现2.红黑树2.1 红黑树的定义2.2 红黑树节点API2.3 平衡化2.3.1 左旋2.3.3 右旋2.4 向单个2-结点中插入新键2.5 向底部的2-结点插入新键2.6 颜原创 2022-02-08 14:05:42 · 90 阅读 · 0 评论 -
优先级队列(五)
文章目录1 最大优先队列1.1 最大优先队列API设计1.2 最大优先级队列代码实现2 最小优先队列2.1 最小优先级队列API设计2.2 最小优先级队列代码实现3 索引优先队列3.1 索引优先队列实现思路3.2 索引优先队列API设计3.3 最小索引优先队列代码实现3.4 最大索引优先级队列实现 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有优先级的,我们需要在这些原创 2022-02-07 18:31:46 · 129 阅读 · 0 评论 -
堆和堆排序(四)
文章目录1 堆的定义2 堆的API设计3 堆的实现3.1 insert插入方法的实现3.2 delMax删除最大元素方法的实现3.3 堆的实现代码4 堆排序4.1 堆构造过程4.2 堆排序过程4.3 代码实现 1 堆的定义 堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。 堆的特性: 它是完全二叉树: 除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满。 它通常用数组来实现:具体方法就是将二叉树的结点按照原创 2022-02-07 14:23:59 · 88 阅读 · 0 评论 -
二叉树(三)
文章目录1 树的基本定义2 树的相关术语3 二叉树的基本定义4 二叉树的创建4.1 二叉树的节点类4.2 二叉树查找API设计4.3 二叉查找树实现4.4 二叉查找树其他便捷方法4.4.1 查找二叉树中最小的键4.4.2 查找二叉树中最大的键5 二叉树的基础遍历5.1 前序遍历5.2 中序遍历5.3 后序遍历6 二叉树层序遍历7 二叉树的最大深度问题8 折纸问题 之前我们实现的符号表中,不难看出,符号表的增删查操作,随着元素个数N的增多,其耗时也是线性增多的,时间复杂度都是O(n),为了提高运算效率,接下原创 2022-02-07 10:31:20 · 88 阅读 · 0 评论 -
基本排序算法(一)
1. 冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 需求: 排序前:{6, 4, 5, 3, 1, 2} 排序后:{1, 2, 3, 4, 5, 6} 排序原理: 1. 比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。 2. 对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大值。 1.1 冒泡排序API设计 1.2 代码实现 import java.util.Arrays; /** * 冒泡排原创 2021-12-05 12:30:44 · 282 阅读 · 0 评论