摘要: 背包问题 在具体实现这些问题的时候,主要是依据该文章的思路来。 背包问题是泛指以下这一种问题: 给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。是一个典型的多阶段决策的过程,适用于动态规划来解决。 01背包 $01$背包指的是每一种物品只有一件, 阅读全文
posted @ 2020-10-04 21:11 S_K_P 阅读(1202) 评论(0) 推荐(0)
摘要: 动态规划(入门) 在之前贪心算法的部分,有一部分问题使用贪心算法无法求得最优解,但是使用动态规划就可以求出最优解。 在现实生活中,有一类活动的过程,这个过程可以分为若干个有联系的过程,每一个阶段都需要作出决策,从而使得整个活动达到最好的效果。各个阶段的决策依赖于当前的状态同时又影响着以后的发展,而每 阅读全文
posted @ 2020-10-04 20:16 S_K_P 阅读(225) 评论(0) 推荐(0)
摘要: 位运算 位运算的速度快于乘除运算,除了运算速度快之外,还有一些位运算的技巧和应用。这里进行简单的总结 常见的位运算有: 运算符 含义 解释说明 & 按位与 两个二进制的位置同为1该位结果为1,否则为0 | 按位或 两个二进制的位置有只要一个为1该位结果为1,否则为0 ^ 按位异或 两个二进制的位置相 阅读全文
posted @ 2020-09-14 23:18 S_K_P 阅读(190) 评论(0) 推荐(0)
摘要: 贪心算法 概念 贪心是人的本能,贪心算法是在贪心决策上进行统筹规划的统称。在问题的解决过程中,总是做出在当前看来最好的选择。 举个简单的例子 假定现在有1元、2元、5元、10元、20元、50元面值的硬币,假设每种面额的硬币都有无数枚,现在要用这些硬币来支付A元,请问最少需要多少枚硬币? 这样一个生活 阅读全文
posted @ 2020-09-13 16:26 S_K_P 阅读(235) 评论(0) 推荐(0)
摘要: 二分策略 二分查找 给定一个从小到大的有序数组,查找元素k是否在数组中。 简单的思路是顺序查找,从前往后,逐个对比,但是效率较低。 可以根据数组从小到大有序这一特点来进行折半查找(二分查找)。 算法思想 待查找的值假定为k。首先在有序序列a中,挑选一个数a[i],如果a[i]小于k,可以直接排除[1 阅读全文
posted @ 2020-09-13 16:25 S_K_P 阅读(634) 评论(0) 推荐(1)
摘要: 宽度优先搜索 概念 宽度优先搜索算法(又称广度优先搜索算法)是最简单的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijksta单源最短路径算法和Prim最小生成树算法都采用了与宽度优先搜索类似的思想。 宽度优先搜索的核心思想是:从初始结点开始,应用算符生成第一层结点,检查目标结点是否在 阅读全文
posted @ 2020-09-01 21:21 S_K_P 阅读(1472) 评论(0) 推荐(0)
摘要: 深度优先搜索 概念 深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS即 Depth First Search。 例如,在下面的树结构中找出节点1。 采取的策略是按照深度优先的方式进行,也就是一条路走到底。每次进入都先走左边,直到左边不能走了,退回一步,选择没有走过的路(右边 阅读全文
posted @ 2020-08-29 12:39 S_K_P 阅读(607) 评论(0) 推荐(0)
摘要: STL 简单记录、讲解一些初级阶段常用的用法。 STL是C++的一个标准模板库,其中包含了许多在计算机领域常用的基本数据结构以及基本算法。STL主要依赖于模板,使得STL具有广泛的通用性。这篇文章旨在介绍一些常用的STL工具及其用法。 Algorithm 该头文件涉及许多常用的功能,例如比较、交换、 阅读全文
posted @ 2020-08-29 12:37 S_K_P 阅读(310) 评论(0) 推荐(0)
摘要: 算法笔记第二期 递推 概念 所谓递推,指的是从已知的初始条件出发,依据某种特定的关系,逐次推导出所要求的各种中间结果,直至得到结果的算法。 从已知条件出发逐步推到问题结果,此种方法叫顺推。从问题出发逐步推到已知条件,此种方法叫逆推。不管怎么推导,关键在于找到递推式。充分发挥计算机擅长重复处理的特点。 阅读全文
posted @ 2020-08-21 14:00 S_K_P 阅读(1996) 评论(0) 推荐(0)
摘要: 算法笔记第一期 递归 在学习递归之前,首先应该掌握的是函数的相关知识,如何定义以及调用函数。函数的作用在于 代码重用 问题分解 并且能够一定程度上体会模块化编程的思想。 递归实际上也是一种函数的应用。函数自己调用自己,这种调用称为“递归”。这种函数被称为“递归函数”。 观察以下程序,思考输出结果 # 阅读全文
posted @ 2020-08-21 13:57 S_K_P 阅读(235) 评论(0) 推荐(0)