摘要: 平衡二叉树(AVL 树) 基本介绍: 应用案例 单旋转(左旋转) 代码实现: 应用案例 单旋转(右旋转): 代码实现: 应用案例 双旋转: 前面的两个数列,进行单旋转(即一次旋转)就可以将非平衡二叉树转成平衡二叉树,但是在某些情况下,单旋转不能完成平衡二叉树的转换。比如数列 int[] arr = 阅读全文
posted @ 2020-04-27 23:35 微观漫步 阅读(586) 评论(0) 推荐(0)
摘要: 二叉排序树 二叉排序树介绍: 比如针对前面的数据 (7, 3, 10, 12, 5, 1, 9) ,对应的二叉排序树为: 二叉排序树创建和遍历: 二叉排序树的删除: 二叉排序树的删除情况比较复杂,有下面三种情况需要考虑: 4) 操作的思路分析: 代码实现: 阅读全文
posted @ 2020-04-27 23:25 微观漫步 阅读(760) 评论(0) 推荐(0)
摘要: 赫夫曼树 基本介绍: 赫夫曼树几个重要概念和举例说明: 赫夫曼树创建思路图解: 给你一个数列 {13, 7, 8, 3, 29, 6, 1},要求转成一颗赫夫曼树. 构成赫夫曼树的步骤: 图解: 赫夫曼树的代码实现: 赫夫曼编码应用之文件解压缩: 阅读全文
posted @ 2020-04-27 22:58 微观漫步 阅读(548) 评论(0) 推荐(0)
摘要: 堆排序 堆排序基本介绍: 大顶堆举例说明: 小顶堆举例说明: 堆排序基本思想: 堆排序步骤图解说明: 堆排序代码实现: 阅读全文
posted @ 2020-04-27 22:50 微观漫步 阅读(276) 评论(0) 推荐(0)
摘要: 马踏棋盘算法 马踏棋盘算法介绍和游戏演示: 马踏棋盘游戏代码实现: 对第一种实现方式的思路图解: 代码实现: 阅读全文
posted @ 2020-04-26 13:16 微观漫步 阅读(2348) 评论(0) 推荐(1)
摘要: 弗洛伊德(Floyd)算法 弗洛伊德(Floyd)算法介绍: 弗洛伊德(Floyd)算法图解分析: 弗洛伊德算法的步骤: 第一轮循环中,以 A(下标为:0)作为中间顶点【即把 A 作为中间顶点的所有情况都进行遍历, 就会得到更新距离表 和 前驱关系】,距离表和前驱关系更新为: 弗洛伊德(Floyd) 阅读全文
posted @ 2020-04-26 13:09 微观漫步 阅读(821) 评论(0) 推荐(1)
摘要: 迪杰斯特拉算法 迪杰斯特拉(Dijkstra)算法介绍: 迪杰斯特拉(Dijkstra)算法过程 迪杰斯特拉(Dijkstra)算法最佳应用 最短路径: 思路 阅读全文
posted @ 2020-04-26 13:02 微观漫步 阅读(1215) 评论(0) 推荐(0)
摘要: 克鲁斯卡尔算法 克鲁斯卡尔算法介绍: 克鲁斯卡尔算法图解说明: 克 鲁 斯 卡 尔 算 法 图 解: 克 鲁 斯 卡 尔 算 法 分 析: 如 何 判 断 是 否 构 成 回 路 举 例 说 明 ( 如 图 ) 在将 加入到最小生成树 R 中之后,这几条边的顶点就都有了终点: 克鲁斯卡尔最佳实践 公 阅读全文
posted @ 2020-04-26 08:30 微观漫步 阅读(979) 评论(0) 推荐(0)
摘要: 普里姆算法 普里姆算法介绍: 图解普利姆算法: 普里姆算法最佳实践(修路问题): 最小生成树: 代码实现: 主方法: 图对象: MiniTree对象: 阅读全文
posted @ 2020-04-26 08:20 微观漫步 阅读(1281) 评论(0) 推荐(0)
摘要: 贪心算法 贪心算法介绍: 贪心算法最佳应用 集合覆盖: 如图: 图解: 代码实现: 贪心算法注意事项和细节: 阅读全文
posted @ 2020-04-26 08:13 微观漫步 阅读(924) 评论(0) 推荐(0)