算法设计与分析
本文主要是介绍算法相关概念和特征以及优缺点,方便今后温习!!!
一、算法特性
- 算法的特性:有穷性,确定性,可行性,输入,输出;
- 算法的表示方法:自然语言,流程图,程序设计语言,伪代码;
- 递归算法求时间复杂度:展开法(将等式依次展开);代换法(用所猜测的值代替函数的解);
二、算法介绍
- 分治法(将一个难以直接解决的大问题分解成一些规模较小的小问题各个击破):分解,求解,合并;
- 动态规划法(将待求解问题分解成若干子问题分别求解,再根据子问题的解得到原问题的解;分解得到的子问题往往不是独立的):找出最优解性质并刻画其结构特性;递归地定义最优解的值;以自底向上的方式求出最优值;根据最优值构造最优解;
- 贪心算法(仅根据当前已有信息做出选择,重点考虑局部最优以达到全局最优):最优子结构;贪心选择性质;
- 回溯法(以深度优先的方式系统地搜索问题):定义问题的解空间;确定解空间结构;深度优先的方式搜索解空间;
- 分支限界法(以广度优先或以最小耗费优先的方式搜索解空间):队列式分支限界法;优先队列式分支限界法;
- 概率算法(把随机性的选择加入到算法中,允许较小概率的错误来提高运行效率):数值概率算法;蒙特卡罗算法;拉斯维加斯算法;舍伍德算法;
- 近似算法(放弃求最优解,而用近似最优解代替)衡量标准:算法的时间复杂度;解的近似程度;
- NP 完全性理论:研究计算问题难易以及一类特殊的难解问题的理论;
- P 类问题:能够以 O(nk)的时间运行一个确定性算法得到准确答案;
- NP 类问题:能够以 O(nk)的时间运行一个不确定性算法得到准确答案;
- NP 完全问题:能够证明用多项式时间的确定性算法得到准确答案;
关注林哥,持续更新哦!!!★,°:.☆( ̄▽ ̄)/$:.°★ 。