[算法]数据结构算法背包问题解法之递归解法,C语言实现

今天讲背包问题的最后一种解法,递归解法,这种解法也是目前算法教材上讲的基
本解法之一,如果你有一本关于这类算法的书籍,一般都可以找到你想要的算法,
背包问题具体是什么,大家可以参考我的以前的文章,可以直接到下面的相关链接
里面找到,我在最近发布关于背包问题的基本解法,动态规划解法,回溯解法,大
家可以直接参照我的页面链接,如果具体还有问题不懂的话,也非常欢迎大家留言

[算法]图算法之骑士遍历问题(象棋中马的遍历问题)分析,C语言实现

实现棋盘上任意位置的一个棋子马,使它不重复的走过棋盘上的每一个棋盘格
分析:首先知道马在棋盘是怎么走的,根据国际象棋规则,马在一个起始位置共有8个
可用的行动位置,当然边界方面需要另外考虑,我们的马的行走必须考虑这8种类可
能性,排除不能使用的位置,走可用的位置,当8个位置不可以使用的时,需要考虑
返回上一步,这点有点像图的广度优先遍历相同,当马走完所有位置,同时没有可
用的位置用于行走的时候遍历结束。

[算法]求质数的算法之Miller-Rabin算法,C语言实现

若n是素数,则对所有1≤a≤n-1的整数a,有a^(n-1)mod n=1;
分析这个定理可以知道,如果一个数是质数,那么它必定满足任意一个整数属于(1,n-1)
范围有a^(n-1)mod n=1,不懂?我们取逆否命题试试看,就是只要存在在(1,n-1)范围中
的整数a 使得a^(n-1)mod n=1不成立,那么这个数就不是素数,相信明白了吧,我们要确定
一个数是否是素数,只要随机生成一系列的数a,如果这些数a使N满足费马小定理的话
那么就可以认定它是素数了

[算法]背包问题的动态规划算法解答,C语言实现

今天继续背包问题相关解法,主要内容:动态规划
想到这个解法是想到了前几天的一道软考软件设计师考试的下午算法考题,我是参
加者,内容大概如下:通常每种食物往往有不同的营养价值,顾客往往需要一种算
法实现用最少的花费获得最高的营养价值,(食物不重复),现在要求在花费N元钱
获得最大营养价值

[算法]背包问题的经典算法和贪心算法解答,C语言实现

背包问题:就是现在有一个容量为PSIZE的背包,同时又有N件item,现在要求将这些
item放入这个背包里面去,要求尽量放一定要求的item(比如按照大小的顺序),又
要求放最多的item或者放的item权值之和要最大

操作系统,模拟进程管理之PCB块管理法,C语言实现

首先大家祝福平安夜快乐啊,今天要发布的代码是一款C语言编写的模拟操作系统管理进程的程序
调试环境TC,使用了PCB进行进程管理控制,建立三个基本的队列:等待、执行、阻塞进行模拟
操作系统的进程管理,模拟进程的调度,模拟用户的创建、执行、阻塞、挂起、唤醒等操作

[算法]经典算法8皇后(N皇后)问题的解法,C语言实现

问题 : 能不能在一个标准的国际象棋棋盘上放8个皇后,使她们相互之间不能互吃
具体点就是,在一个8*8的棋盘上放皇后,皇后是所有方向上都可以移动的,现在要
让她们不能互吃的话就要使得她们不会在同一条线上
具体解法:从第一行第一列的位置开始放棋子(假定列优先),然后记录其占用的
行斜直线的编号,然后放第二个棋子,在排除前面所有棋子的所占的编号的情况下
选择到有效位置,然后继续,直到放满8个棋子为止