二分查找 基础二分实现查找实现与动画 template<typename T> int binarySearch(T arr[], int len, T target) { int l = 0, r = len - 1; while (l <= r) { // 求中值 int mid = l + ((r - l) >> 1); if (arr[mid] == target) { return mid; } if (arr[mid] > target) { r = mid - 1;…
二分查找 基础二分实现查找实现与动画 template<typename T> int binarySearch(T arr[], int len, T target) { int l = 0, r = len - 1; while (l <= r) { // 求中值 int mid = l + ((r - l) >> 1); if (arr[mid] == target) { return mid; } if (arr[mid] > target) { r = mid - 1;…
二叉堆 简介 二叉堆(英语:binary heap)是一种特殊的堆,二叉堆是完全二叉树。二叉堆满足堆特性:父节点的键值总是保持固定的序关系于任何一个子节点的键值,且每个节点的左子树和右子树都是一个二叉堆。 当父节点的值总是大于或等于任何一个子节点的值时为「最大堆」。当父节点的值总是小于或等于任何一个子节点的值时为「最小堆」。 完全二叉树:一棵深度为 k 的有 n 个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为 i (1 ≤ i ≤ n)的结点与满二叉树中编号为 i 的结点在二叉树中的位置…