网站大量收购独家精品文档,联系QQ:2885784924

算法分析与设计算法汇总.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分治法的治本思想 将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归的解这些子问题,然后将各个子问题的解合并得到原问题的解。 快速排序 在快速排序中,记录的比较和交换是从两端向中间进行的,关键字较大的记录一次就能交换到后面单元,关键字较小的记录一次就能交换到前面单元,记录每次移动的距离较大,因而总的比较和移动次数较少。 最坏时间复杂度:O(n2) 平均时间复杂度:O(nlogn) void QuickSort (Type a[], int p, int r){ if (pr) { int q=Partition(a,p,r); QuickSort (a,p,q-1); //对左半段排序 QuickSort (a,q+1,r); //对右半段排序 } } int Partition (Type a[], int p, int r){ int i = p, j = r + 1; Type x=a[p]; // 将 x的元素交换到左边区域 // 将 x的元素交换到右边区域 while (true) { while (a[++i] x); while (a[- -j] x); if (i = j) break; Swap(a[i], a[j]); } a[p] = a[j]; a[j] = x; return j; } 动态规划的基本思想 将待求问题分解成若干个子问题,先求解子问题,然后从这些子问题的解中得到原问题的解。与分治法不同的是解,经分解得到的解往往不是互相独立的。 动态规划的步骤: (1)找出最优解的性质,并刻划其结构特征。(2)递归地定义最优值。(3)以自底向上的方式计算出最优值。(4)根据计算最优值时得到的信息,构造最优解。 矩阵连乘 计算时间上界为O(n3) void MatrixChain(int *p,int n,int **m,int **s){ for (int i = 1; i = n; i++) m[i][i] = 0; for (int r = 2; r = n; r++) for (int i = 1; i = n - r+1; i++) { int j=i+r-1; m[i][j]= m[i+1][j]+ p[i-1]*p[i]*p[j]; s[i][j] = i; for (int k = i+1; k j; k++) { int t = m[i][k] + m[k+1][j] + p[i-1]*p[k]*p[j]; if (t m[i][j]) { m[i][j] = t; s[i][j] = k;} } } } 最长公共子序列 O(mn) void LCSLength(int m,int n,char *x,char *y,int **c,int **b){ int i,j; for (i = 1; i = m; i++) c[i][0] = 0; for (i = 1; i = n; i++) c[0][i] = 0; for (i = 1; i = m; i++) for (j = 1; j = n; j++) { if (x[i]==y[j]) { c[i][j]=c[i-1][j-1]+1; b[i][j]= “ ↖ ”;} else if (c[i-1][j]=c[i][j-1]) { c[i][j]=c[i-1][j]; b[i][j]= “ ↑ ”;} else { c[i][j]=c[i][j-1]; b[i][j]= “ ← ”; } } } void LCS(int i,int j,char *x,int **b){ if (i ==0 || j==0) return; if

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档