算法设计与分析书中程序.pdfVIP

  • 1
  • 0
  • 约1.09万字
  • 约 7页
  • 2020-05-14 发布于湖北
  • 举报
【程序 5-1 】 分治法 SolutionType DandC(ProblemType P) { ,P , ,P 。 ProblemType P1 2 k if (Small(P)) return S(P) 。// 子问题 P 足够小,用 S(P)直接求解 else { ,P , ,P Divide(P ,P1 2 k) 。//将问题 P 分解成子问题 P1, P2, …,Pk Return Combine(DandC(P ) ,DandC(P ) ,…, DandC(P )) 。// 求解子问题,并合并解 矚慫润厲钐瘗 1 2 k 睞枥庑赖。 } } 【程序 5-2 】一分为二的分治法 SolutionType DandC(int left ,int right) { if (Small(left ,right)) return S(left ,right) 。 else { int m=Divide(left ,right) 。// 以 m 为界将问题分解成两个子问题 Return Combine(DandC(left ,m),DandC(m+1 ,right)) 。// 分别求解子问题,并合并解 聞創沟燴鐺險 爱氇谴净。 } } 【程序 5-3 】可排序表类 template class K, class D struct E { // 可排序表中元素的类型 operator K()const { return key 。} // 重载类型转换运算符 K key 。//关键字可以比较大小 D data 。//其他数据 } 。 template class T class SortableList { // 可排序表类 public: SortableList(int mSize) // 构造函数 { maxSize=mSize。 l=new T[maxSize] 。 n=0 。 } ~SortableList(){delete []l 。}// 析构函数 private: T *l 。// 动态生成一维数组 int maxSize 。//线性表的最大表长 int n 。 // 线性 表的实际长度 } 。 【程序 5-4 】 求最大最小元 template class T void SortableListT::MaxMin(T max, T min)const { if (n==0)return 。 max=min=l[0] 。 for (int i=1 。 in 。 i++) {

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档