贪心算法(greedyalgorithm)是指在解决问题时,每一步都采用最好的或最优的选项(即最有利的),所以是可取的。如果结果是最好或最优的算法。 贪心算法得到的结果往往不是最优结果(有时是最优解),而是相对(接近)最优解。 贪心算法没...
Dijkstra 算法(Dijkstra)用于在没有非负权重的情况下计算从起点到每个节点的最短距离 可用 2 类问题: 有从 A 地到 B 地的路吗? 从 A 到 B 的最短路径(最少时间、最少路径等)。事实上,最终计算完成后,我们...
广度优先搜索算法(Breadth First Search),又称“广度优先搜索”或“水平优先搜索”,简称BFS; BFS 用于图搜索算法(要求能够使用图来表示问题之间的关系)。 BFS 可以用来解决两类问题: 是否有从 A 到 B 的路...
1。大O表示法:指示算法的速度有多快,用于指出随数量的增大,算法的所需步骤增加的速度,常见的大O运行时间(时间复杂度): O(1)表示常数阶时间复杂度 O(log n),也叫对数时间复杂度,这样的算法包括二分查找。 O(n),也叫线性阶时间...
分而治之(divide and conquer, D&C),一种著名的 **递归式** 解决问题的方法.快速排序中便使用到了该方法; D&C的工作原理: - 找出简单的基线条件; - 确定如何缩小问题的规...
梯度下降优化算法概述我们通常所说的训练神经网络就是最小化损失函数的过程。损失函数的值衡量模型在给定数据集下的表现(拟合)能力。 图1如损失函数J 如图 1所示,B点是函数的最低点。如果A点是初始值,那么优化器的作用就是引导初始值A点到最低的...
B树是一种自调整多路径搜索树,可以保持数据有序。它允许在 O(log n) 时间复杂度内完成搜索、插入和删除。当描述B树时,我们需要指定它的顺序。顺序表示节点拥有的子节点的最大数量。一般情况下,字母m用来表示顺序。当m取2时,这就是我们常用...
Kaylyn以Go代码为例,直接讲解二叉搜索树算法。 简介在过去的一年里,Kaylyn一直试图通过实施各种算法来击败找乐子。这对你来说可能听起来很奇怪,但算法对她来说尤其陌生。她特别讨厌大学课堂上的算法。她的教授经常使用复杂的术语来教学,并...
B+树 B+树是B树的变种,也是平衡多路径搜索树。总体结构与B树相同,包括根节点、内部节点和叶节点。它主要用于数据库和操作系统文件系统。由于B+树的内部节点不存储数据,因此可以在内存中存储更多的索引,提高缓存命中率。另外,由于叶子节点很方便...
二叉搜索树 二叉搜索树(BST),也称为二叉排序树,是树的一种。二叉树组织数据。每个树节点包含一个键值、一个数据值、一个指向左子节点的指针和一个指向右子节点的指针。其中,关键值是中心部分。它的值决定了树的组织形式;数据值data是该节点对应...