算法分析与设计
高行行
公众号《骇客与画家》,个人博客网站 gaohanghang.cn
展开
-
算法分析与设计-04-循环赛日程表算法
循环赛日程表算法:#include #define MAX 100int a[MAX][MAX];void Copy(int tox,int toy,int fromx,intfromy,int r){ for(inti=0;i for(intj=0;j a[t原创 2016-11-13 17:52:04 · 1011 阅读 · 0 评论 -
算法分析与设计-03-二分搜索算法
二分搜索算法:#include templateint BinarySearch(Type a[],const Type&x, int n){ intleft=0; intright=n-1; while(left<=right) { intmiddle=(left+righ原创 2016-11-13 17:48:14 · 420 阅读 · 0 评论 -
算法分析与设计-14-最小生成树的Prim算法
最小生成树的Prim算法#includeusing namespacestd; #define NUM 1000#define maxint10000000 void Prim (int n, int c[][NUM]){ int lowcost[NUM]; int closest[NUM]; bool s[NUM原创 2016-11-13 18:34:36 · 364 阅读 · 0 评论 -
算法分析与设计-13-活动安排问题的贪心算法
活动安排问题的贪心算法#include #includeusing namespacestd; struct action{ int s; int f; int index;}; bool cmp(constaction &a,const action &b){ if(a.f<=b.f)return t原创 2016-11-13 18:28:40 · 554 阅读 · 0 评论 -
算法分析与设计-12-数字三角形问题的动态规划算法
数字三角形问题的动态规划算法#include#define NUM 100int tri[NUM][NUM];int triangle(int n){ inti,j; for(i=n-2;i>=0;i--) for(j=0;j<=i;j++){ if(tr原创 2016-11-13 18:27:03 · 624 阅读 · 0 评论 -
算法分析与设计-11-最长递增子序列的动态规划算法
最长递增子序列的动态规划算法#include#define NUM 100int a[NUM];int LIS(int n){ int b[NUM]={0}; int i,j; b[1]=1; int max=0; for(i=2;i<=n;i++){ i原创 2016-11-13 18:23:25 · 300 阅读 · 0 评论 -
算法分析与设计-10- 最大子段和的动态规划算法
最大子段和的动态规划算法#include #define NUM 100int a[NUM];int MaxSum(int n,int &besti,int&bestj) { int sum = 0; int b = 0; int begin=0; for(int i = 1; i <= n; i++) //从第一个数开始算起 {原创 2016-11-13 18:19:46 · 998 阅读 · 0 评论 -
算法分析与设计-09- 0-1背包问题
0-1背包问题#include using namespace std; #define NUM 50 //物品数量的上限#define CAP 1500 //背包容量的上限int w[NUM] ; //物品的重量int v[NUM]; //物品的价值int p[NUM][CAP]; //用于递归的数组int min(原创 2016-11-13 18:16:43 · 452 阅读 · 0 评论 -
算法分析与设计-08-最长公共子序列算法
最长公共子序列算法#include #include void LCSLength(int m, int n,char x[20],char y[20], int c[20][20], intb[20][20]){ int i,j; for(i = 0; i <= m; i++) c[i][0] = 0; for(j = 1; j <= n;原创 2016-11-13 18:13:04 · 483 阅读 · 0 评论 -
算法分析与设计-07-计算矩阵连乘积的备忘录算法
计算矩阵连乘积的备忘录算法#include #include #define NUM 51int n;int p[NUM];int m[NUM][NUM];int s[NUM][NUM];//备忘录算法int LookupChain(int i,int j){ if(m[i][j]>0) returnm[i][j];原创 2016-11-13 18:08:54 · 647 阅读 · 0 评论 -
算法分析与设计-02-勒让德多项式的递归算法
勒让德多项式的递归算法:#include #include float fib(int n,int x){ if (n == 0) { return 1; } else if (n == 1) { return x; } else { return (原创 2016-11-13 17:44:00 · 930 阅读 · 0 评论 -
算法分析与设计-06-矩阵连乘问题
矩阵连乘问题:#include #include #define NUM 51int n;int p[NUM];int m[NUM][NUM];int s[NUM][NUM];void matrixChain(){ for(int i=1;i<=n;i++) //填主对角线d1 { m[i][i]=0; } for(int r=2;r<=n;r++)//填次对角线原创 2016-11-13 18:02:18 · 642 阅读 · 0 评论 -
算法分析与设计-05-棋盘覆盖问题算法
棋盘覆盖问题算法:#includeint tile=1;int board[100][100];void ChessBoard(int tr,int tc,int dr,intdc,int size){ if(size==1) return;//递归边界 intt=tile++;//L型骨牌号 ints=size/原创 2016-11-13 17:56:38 · 348 阅读 · 0 评论