
为什么要有“红黑树” 极端情况下,二叉树会退化为链表。插图,两种极端情况。 “红黑树”是一种“非严格”的平衡二叉树。 平衡二叉树的定义:任何结点...
Trie 又称作字典树、前缀树。 Trie 的结构 1、Trie 的设计很巧妙,它不像一般的字典那样,把一整个单词存在数据结构里。Trie 利用...
“线段树”实现了高效的“数组区间查询”与“数组区间更新” “线段树”(segment tree)又称“区间树”,是一个高级数据结构,应用的对象是...
“并查集”这部分知识点讲得最清楚的是《算法》(第 4 版),本篇“并查集”的介绍是我看这本书第 1.5 节的学习笔记。 什么是“并查集” 为什么...
“算法”的入门,我们从“排序算法”开始,希望通过“排序算法”这一部分的学习,能够让我们认识到“算法”的威力。“算法”不仅仅只存在与我们的面试中(...
理解树的高度 AVL 树保持平衡的思想,在快速排序的 partition 的优化中,也有类似的体现,即:为了避免递归深度加深,partition...
第 1 版快速排序的两个优化和问题 两个优化 1、小区间里使用插入排序:在第 1 版快速排序的实现上,结合我们对第 1 版归并排序的讨论,我们可...
下面我们使用一种全新的思路来实现归并排序算法。 由于少了递归,我们只保留了“合并两个有序”数组的代码。 Python 代码: 说明:“自底向上”...
归并排序的 个优化 归并排序的优化有以下 个角度: 1、如果两个数组,直接拼起来就是有序的,就无须 merge。即当 arr[mid]<=a...
文集作者