数据结构和算法
文章平均质量分 69
张=小红=
这个作者很懒,什么都没留下…
展开
-
排序算法(未完工)
排序算法冒泡public class bubble { public void bubbleSort (int[] arr) { if (arr.length < 2) { return; } // 外层循环代表循环 (冒泡) 次数 // 每完成一次冒泡就会有一个最小的数浮到数列顶端 for (int i = 0; i < arr.length - 1; i++) {原创 2021-09-08 12:04:43 · 85 阅读 · 0 评论 -
简单的用栈实现队列
简单的用栈实现队列队列是一种先进先出的数据结构,栈是一种先进后出的数据结构,形象一点就是这样:在面试中常常会问到这样一个问题:怎么使用栈来实现一个队列?如何用队列来实现一个栈?前者问的较多,后者问的较少,但掌握得多也不是坏事嘛,接下来我们就来解析下这两个问题。用栈实现队列首先,队列的 API 如下:class MyQueue { /** 添加元素到队尾 */ public void push(int x); /** 删除队头的元素并返回 */ public原创 2021-08-11 22:01:43 · 320 阅读 · 0 评论 -
LRU和LFU算法
LRU和LFU算法LRU算法LRU 的全称是 Least Recently Used,也就是说我们认为最近使用过的数据应该是「有用的」,很久都没用过的数据应该是无用的,内存满了就优先删那些很久没用过的数据。LRU 缓存算法的核心数据结构就是哈希链表LinkedHashMap,双向链表和哈希表的结合体。使用该数据结构,就可以确保get 和 put 方法都是 O(1) 的时间复杂度。、力扣第 146 题「LRU缓存机制」就是让你设计数据结构。在使用LinkedHashMap实现LRU算法前,我们先手原创 2021-08-11 19:48:46 · 337 阅读 · 0 评论 -
红黑树的简单认识(未完工)
红黑树1)红黑树性质 红黑树,Red-Black Tree 「RBT」是一个自平衡(不是绝对的平衡)的二叉查找树(BST),树上的每个结点都遵循下面的规则: 1.结点是红色或黑色; 2.根节点和叶子结点(NIL节点)是黑色; 3.每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点); 4.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点; 5.根节点必黑,新增是红色,只能黑连黑,不能红连红; 爸叔通红就变色,爸红叔黑就旋转,哪边黑往哪边转原创 2021-02-10 15:49:34 · 129 阅读 · 0 评论 -
二叉排序树和平衡二叉树
二叉排序树和平衡二叉树参考文章:https://blog.csdn.net/qq447995687/article/details/953765011.二叉排序树二叉排序树(Binary Sort Tree),又称二叉查找树(Binary Search Tree),亦称二叉搜索树1)二叉排序树性质 1.若左子树不空,则左子树上所有结点的值均小于根节点的值;同理,若右子树不空,则右子树上所有节点的值均大于根节点的值; 2.左右子树也分别为二叉排序树; 3.中序遍历二叉排序树,可以得到一个递原创 2021-02-09 14:50:31 · 653 阅读 · 1 评论