- 博客(11)
- 收藏
- 关注
原创 贪心算法及例题
贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。最优子结构的意思是问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。贪心算法是用算法模拟一个“贪心”的人做出的决策,每一步都选取最优操作,不考虑造成的影响。算出每堆金币的性价比,并按其进行排序,每次拿走性价比最高的金币,直到背包装满为止。二者的区别在于一种是离线的,先处理后选择;时间复杂度:O(nlogn)空间复杂度:O(n)
2023-11-27 14:27:51
358
原创 位运算(二进制运算)
计算机采用的是二进制,二进制包括两个数码:0,1。在计算机的底层,一切运算都是基于位运算实现的。位运算共有 6 种,分别是:与、或、异或、取反、左移和右移。
2023-11-07 17:27:16
121
原创 时间复杂度和空间复杂度
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。
2023-11-07 17:19:13
67
原创 循环队列的原理及其代码实现
循环队列是一种空间确定的数据结构,属于线性结构的优化形式。队列的数据结构为一端进,一端出的形式,即先进先出(FIFO)。
2023-11-07 00:23:15
61
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人