
数据结构_二叉树节点
简述 任何一个节点都有两个强引用指向左右子节点,以及一个弱引用指向它的父节点。节点还包括一个key成员保存数据内容。 实现 template<typename KType> struct BinaryTr...
简述 任何一个节点都有两个强引用指向左右子节点,以及一个弱引用指向它的父节点。节点还包括一个key成员保存数据内容。 实现 template<typename KType> struct BinaryTr...
概述 贪心算法(Greedy Algorithm)是一种构造性算法,用于解决最优化问题 其核心思想是在每一步选择中,都采取当前状态下最优的选择,期望通过一系列局部最优的选择达到全局最优 贪心算法在许多实际问题中非常有...
快速排序 void quick_sort(int q[], int l, int r) { if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r &...
BFS 概述 广度优先搜索(Breadth-First Search,简称 BFS)是一种遍历或搜索图或树数据结构的算法 它从根节点开始,沿着树的宽度遍历节点(即先访问同一层级的所有节点,再访问下一层级的节点) 在图...
时间复杂度 O(1) O(logn) O(n) O(nlogn) O(n^2) O(n^3) O(2^n) O(n!) O(n^n) $$ O(1) < O(log_n)<O(n)<O(nlog_n...
简述 计数排序适用于对一定范围内的元素进行排序。 它的思路就是创建一个范围性的计数数组,用下标去对应元素的值,有几个元素,相应下面命中几次。然后根据元素命中次数对下标值进行一次输出,得到的序列就是有序的序列。 它是不...
简述 归并排序思想,假设对数组A[p...r]排序: 分解 将数组A[p...r]平均划分为2子数组A[p...q-1]个A[q...r],一直划分直到每个子数组只有1个元素 归并 对 A[p...q-1]和A[q....
单链表 // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点 int head, e[N], ne[N], idx; // 初始化 void init() { h...
概述 狄克斯特拉算法(Dijkstra's Algorithm)是一种用于计算单源最短路径的算法,适用于非负权重的有向图和无向图 对于狄克斯特拉算法而言,图必须有权重才行 如果图是无权图(即所有边的权重都相...
简述 也叫折半查找,性能优异。 但是所查找的数列必须是有序序列。 复杂度 时间复杂度 log2(N) 实现 非递归实现 int BinarySearch(int array[],int key,int length)...