算法概览
-
相关认识:算法是定义良好的解决问题的步骤,在计算机程序中表达的方法。使用算法的3个原因:效率、抽象、重用性
-
一般设计方法:
- 近似法:不计算出最优解,只计算出“足够好的”的解。通常利用近似法解决那些计算成本高又因为本身十分有价值而不愿放弃的问题,如推销员问题。
- 随机法:依赖于随机数的统计特性,如快速排序;快速排序平均性能不错,因为随机数的正态分布使得划分的结果是相对平衡的。
- 分治法:包含3个步骤,分解、求解与合并。如归并排序。
- 贪心法:总是做当前最佳的选择,也即局部最优,并不一定产生整体最优的解。如霍夫曼编码。
- 动态规划:将较大的问题分解为子问题最后再将结果合并;它能够处理存在关系的子问题,并不独立,区别分治法的子问题是相互独立的。如回文数。
-
指针操作
-
递归
-
算法时间,空间复杂度分析
-
数据结构
-
基础算法实例
图片比较大,请通过预览图片查看。