第 五 章 减治法.pptVIP

  • 25
  • 0
  • 约4.84千字
  • 约 22页
  • 2020-10-07 发布于浙江
  • 举报
西南科技大学 算分析与设计 第 五 章 减治法 什么是减治法? 就是在处理问题的过程中,不断减小被处理的问题规模的方法。 减治法的设计思想 减治技术通过建立原问题实例的解和同样问题较小实例的解的关系,并利用这种关系,从顶而下(递归地)或从底而上(非递归地)解决问题。一般情况下,每次算法迭代,都消去一个常量和一个常数因子。 常见的减治法算法 最常见的减治法有: 减常量减治法,典型的就是插入排序,问题规模每次都减1;还有计算a的n次方,可以计算a的n-1次方,再变成计算a的n-2次方等等。 减常数因子减治法,典型的就是折半查找,每次都把n/2个元素删去;还有约瑟夫斯问题。 减可变规模减治法法,典型的就是选择问题,每次问题规模的减小量都在1到n之间;还有二叉树的查找。 减常量减治法 减常量减治法的典型例子就是插入排序,它运用的是减一技术。 直接插入排序与打扑克时整理手上的牌非常类似。摸来的第1张牌无须整理,此后每次从桌上的牌(无序区)中摸最上面的1张并插入左手的牌(有序区)中正确的位置上。为了找到这个正确的位置,须自左向右(或自右向左)将摸来的牌与左手中已有的牌逐一比较。 通常将一个记录A[i](i=2,3,…,n)插入到当前的有序表,使得插入后仍保证该区间里的记录是按关键字有序的操作称第i-1趟直接插入排序。在排序过程的某一中间时刻,A被划分成两个子区间A[1..i-1](有序区)和a

文档评论(0)

1亿VIP精品文档

相关文档