随笔分类 -  数据结构与算法

摘要:一、概述 红黑树是一种自平衡树在计算机科学中。二叉树的每个节点都有一个额外的位,该位通常被解释为节点的颜色(红色或黑色)。这些颜色位用于确保树在插入和删除期间保持近似平衡。通过以满足某些属性的方式用两种颜色之一绘制树的每个节点来保留平衡,这些属性共同限制树在最坏情况下的不平衡程度。修改树时,随后重新 阅读全文
posted @ 2018-10-30 19:09 小情绪Ango 阅读(152) 评论(0) 推荐(0)
摘要:一、AVL树定义 在数据结构中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度差的绝对值不能超过一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次旋转来使得AVL树保持平衡。 二、AVL树的特性 1.任意 阅读全文
posted @ 2018-10-17 21:10 小情绪Ango 阅读(163) 评论(0) 推荐(0)
摘要:一、概述 在看JDK源码时,看到关于map相关的,看到HashMap时,一部分源码与红黑树有关。索性就将树这种数据结构从头学一遍,记录下来,给自己还有他人留个参考和学习的资料。 涉及到使用二叉树进行排序、查找节点值、前序遍历、中序遍历、后续遍历(它们的递归实现和非递归实现)、删除节点、查找最大节点、 阅读全文
posted @ 2018-10-12 10:47 小情绪Ango 阅读(153) 评论(0) 推荐(0)
摘要:算法连续将两个数取余,直到余数为0,最后的非零余数就是最大公因数。 代码如下: import java.util.Scanner; /** * 欧几里得算法 求两个数的最大公因数 */ public class EuclideanAlgorithm { public static void main 阅读全文
posted @ 2018-08-04 21:09 小情绪Ango 阅读(205) 评论(0) 推荐(0)
摘要:二分查找也称折半查找(Binary Search),它的查找效率很好。二分查找有一个要求是必须采用顺序存储结构,而且表种的元素是有序的。只有满足这个条件我们才能使用二分查找。 查找条件: 查找区域的左边界,小于等于查找区域的右边界 查找过程: 1. 循环条件 == 查找条件 2.计算序列中间下标位置 阅读全文
posted @ 2018-08-04 18:49 小情绪Ango 阅读(155) 评论(0) 推荐(0)