摘要:
动态规划 //求解最长公共子序列问题 #include<stdio.h> #include<string.h> #define N 30 int lcslength(char *a,char *b,int c[][N]){ //求c[m][n] 即最长公共子序列的长度 int m = strlen( 阅读全文
摘要:
二路归并排序 //二路归并排序 //分治法 //自底向上的二路归并排序算法 #include<stdio.h> #include<malloc.h> void disp(int a[],int n){ int i; for(i=0;i<n;i++) printf("%d ",a[i]); print 阅读全文
摘要:
递归 1 //求解N皇后问题 2 //递归法 3 #include<stdio.h> 4 #include<stdlib.h> 5 const int N = 20; 6 int q[N]; 7 void disp(int n){ 8 static int count = 0; 9 int i; 1 阅读全文
摘要:
快速排序算法的性能取决于 划分的对称性。 快速排序 -- 选择划分基准 <1>随机选择一个元素作为划分基准。 <2>取子序列的第一个元素。 <3>用中位数的中位数方法寻找划分基准。 分治法 分治策略: <1>分解:将原序列 a[s...t] 分解成两个子序列 a[s...i-1] 和 a[i+1.. 阅读全文
摘要:
穷举法 问题描述: 问题求解:对于n个物品,容量为W的背包问题。 <1>先采用求幂集的方法求出所有的物品组合。 <2>对于每一种组合,计算组合中物品的总重量sumw,总价值sumv。 <3>对于每一种组合,如果sumw <= W ,说明该组合是一种解。比较所有解,将最佳方案保存在 maxsumw 和 阅读全文
摘要:
//穷举法 #include<stdio.h> #define Maxn 10 #define MaxSize 1000 typedef struct{ struct{ int a[Maxn]; int m; }data[MaxSize]; int top; }StackType; void ins 阅读全文
摘要:
方法一 //求解最大连续子序列和问题 #include<stdio.h> long maxSubSum(int a[],int n){ int i,j,k; long maxSum=a[0],thisSum; for(i=0;i<n;i++){ for(j=i;j<n;j++){ thisSum=0 阅读全文