算法导论 系列一:算法分析基础

循环不变式与算法正确性

  • 初始化:循环第一轮开始前是正确的
  • 保持: 每次迭代之后,下次迭代开始前,保持正确
  • 终止: 循环节俗时,算法性质保持正确
  • 以插入排序为例:一个元素必定有序,插入一个元素保证有序,迭代至最后一个元素,整体必然有序

传统分析方法与表示

  • 最坏情况:运行时间的上界

  • 合并排序使用分治法,最坏运行情况为O(nlgn)

  • 在合并排序中对小数组使用插入排序

    • n个元素分为定长k的小数组排序,共分为n/k个子数组,每个时间复杂度为kk,总的时间复杂度为n/kk*k = O(nk)
    • 合并n/k个小数组,复杂度最差为n*lg(n/k)
  • 上下渐进界

  • 代换法

    • 猜测解的形式,用数学归纳写出解有效的常数,调整边界条件
  • 递归树方法:每层代价之和即为代价上界

    • 对T(n) = 3T(n/4) + cn^2
  • 主定理

posted @ 2016-12-23 20:49  zeroArn  阅读(204)  评论(0编辑  收藏  举报