![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机算法与分析
如是我闻__一时__
菜鸟一枚,多多指教
展开
-
递归与分治----章节总结(一)
递归与分治在这一章节,我主要想做一个总结,挑选了几个重点的题目来加以练习,方便以后的复习回顾。Ackerman函数的递归算法这个比较简单啦,根据表达式直接写代码就ok。代码如下:/*Ackerman函数*/#include<iostream> using namespace std;int Ackerman(int n,int m){...原创 2019-04-15 21:57:33 · 530 阅读 · 0 评论 -
贪心算法之最优装载问题
问题描述:有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船最优装载问题可用贪心算法求解。采用重量最轻者先装的贪心选择策略,可产生最优装载问题的最优解代码:#include<iostream>using namespace std; int n;//numberint W...原创 2019-05-11 20:28:41 · 3084 阅读 · 0 评论 -
贪心算法:单源点最短路径
题目描述:给定带权有向图G =(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其它各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题算法步骤:代码:/*问题描述:给定一个带权有向图G=(V,E),其中每条边的权都是非负整数。另外,给定V中的一个顶点,作为源。现在计算从源到所有其他各个顶点...原创 2019-05-14 21:55:50 · 1719 阅读 · 0 评论 -
实验9----最优二叉搜索树
题目:利用最优二叉搜索树来实现树的搜索代价最小。树上的每一个节点都有一个被搜索到的概率值pipi,搜索一个节点的花费为pi∗(depth(ki)+1)pi∗(depth(ki)+1),如何构造一个二叉查找树使搜索树上的 所有节点的花费最小即为实现最优二叉查找树的问题。该问题可以用动态规划的思路实现。 形式化定义:给定n个不同关键字已经排序的序列K=(k1,k2,...,kn)因此(k1&...原创 2019-05-10 21:01:59 · 1173 阅读 · 0 评论 -
贪心算法---活动安排问题,背包问题
1.活动安排问题:有n个活动,其开始时间,结束时间已知,问怎么安排可以尽可能排最多的活动 /*活动安排问题*/#include<iostream>using namespace std;#define MAXNUM 20int n;//活动的个数int start[MAXNUM];//活动的开始时间int finish[MAXNUM];//活动的结束时间b...原创 2019-05-08 12:48:18 · 512 阅读 · 0 评论 -
算法练习----最大子段和的一般算法与分治算法
/*@Time:2019-40-13@Author:A fan of Arsenal@Theme:最大子段和练习*/#include<iostream>using namespace std;int n,a[50];int sum=0;void input(){ cout<<"请输入数列的大小"<<endl; cin>...原创 2019-04-14 17:35:52 · 161 阅读 · 0 评论 -
0-1背包问题
0-1背包问题:问题描述:有一个容量为weight的背包,有一组重量为W:{w1,w2,w3,.....wn},它们的价值分别是V:{v1,v2,v3,......vn}问怎么装这些物品可以达到它们的价值最大?解决这道题用到了动态规划。可以用一个公式来表述这一问题:V(i,j)----->表示在容量是j的情况下,怎么取前i个物品使得价值最大。然后可得到一个递归公式...原创 2019-04-16 21:18:07 · 178 阅读 · 0 评论 -
递归与分治----章节总结(二)
1.二分搜素算法的递归实现代码:/*二分搜索递归算法*/#include<iostream> using namespace std;int BinSearch(int a[],int low,int high,int key){ if(low>high) { return -1;//查找失败,返回-1; } e...原创 2019-04-16 20:50:33 · 160 阅读 · 0 评论 -
算法练习-----最大公共子序列
/*@Time:2019-40-13@Author:A fan of Arsenal@Theme:最长公共子序列练习*/#include<iostream>using namespace std;int x[50],y[50];int m,n,b[100][100],c[100][100];//m是X序列的长度 n是Y序列的长度;c[i][j]数组存储Xi和Yj的...原创 2019-04-13 12:47:20 · 135 阅读 · 0 评论 -
动态规划----章节总结(一)
动态规划:1.写出菲波拉契数列自底向上的非递归动态规划算法或自顶向下的递归动态规划算法(备忘录方法)。输入:输入一个数字。 输出:输出为Fibonacci数列的值。示例:输入:5 ,输出:8自顶向下的递归动态规划算法#include<iostream>using namespace std;int Fib[100]...原创 2019-05-23 13:22:09 · 138 阅读 · 0 评论