数据结构算法设计方法讲义.pptxVIP

  • 2
  • 0
  • 约5.24千字
  • 约 32页
  • 2020-06-03 发布于上海
  • 举报
第十一章 算法设计方法11.1 分治法11.2 动态规划11.3 贪心法11.4 回溯法11.5 分枝限界法11.1 分治法分治法:分而治之对于一个输入规模为n的问题,用某种方法把输入分割成k个子集(1k≤n),从而产生a个子问题,a个子问题解决后,再用某种方法组合成原来问题的解。一、排序算法中的分治法选择排序 将n个元素放在一个数组中, 先通过n-1次比较选出其中的最小元素,与第1个元素交换 再在剩下的n-1个元素中选出最小的元素,与第2个元素交换 ........规模为n的问题规模为1的问题规模为n-1的问题归并排序void MSort(RcdType SR[ ],RcdType TR1[ ],int s,int t){ //将SR[s..t]归并排序为TR1[s..t] if(s==t) TR1[s]=SR[s]; else { m=(s+t)/2; //将SR[s..t]平分为SR[s..m]和SR[m+1..t] Msort( SR,TR2,s,m,); //递归地将SR[s..m]归并为有序的TR2[s..m] Msort(SR,TR2,m+1,t); //递归地将SR[m+1..t]归并为有序的TR2[m+1..t] Merge(TR2,TR1,s,m,t); //将TR2[s..m]和TR2[m+1..t]归并到TR1[s..t] }}//Msort快速排

文档评论(0)

1亿VIP精品文档

相关文档