算法设计

《数据结构与算法分析》第十章整理

贪婪算法

greedy algorithm

optimal/suboptimal solution

  • 简单调度问题

    non-preemptive scheduling
    • 平均完成时间最小化
    • 最后完成时间最小化
  • 近似装箱问题

    bin packing problem
    • 联机算法 on-line
    • 脱机算法 off-line

      将各项物品排序,把最大的物品放在最先。
    • 下项适合算法 next fit

      当处理任何一项物品时,检查看他是否还能装进刚刚装进物品的同一个箱子中去。如果能够装进去就把它放入该箱子中;否则,就放入一个新的箱子。
    • 首次适合算法 first fit

      依次扫描这些箱子,但把新的一项物品放入能装下它的第一个箱子中。
    • 最佳适合算法 best fit

      不是把一项新物品放入所发现的第一个能容纳它的的箱子中,而是放到所有箱子中能够容纳它的最满的箱子中。
  • 哈夫曼算法

    Huffman code
    • 最优哈夫曼编码树

分治算法

divide and conquer  
  • 降低时间复杂度
    • 最近点问题
    • 选择问题
    • 整数相乘
    • 矩阵乘法

动态规划

dynamic programming

当编译器不能正确的对待递归算法,导致低效的算法时,将递归算法重新写成非递归算法,让后者把那些子问题的答案系统的记录在一个表内。

  • 用一个表代替递归
  • 矩阵乘法顺序安排
  • 最优二叉查找树
  • 所有点对最短路径

随机化算法

randomized algorithm    
  • 随机数发生器
  • 跳跃表
  • 素性测试

回溯算法

backtracking    
  • 收费公路重建问题
  • 博弈

猜你喜欢

转载自www.cnblogs.com/tzhao/p/9853218.html