1 导学
1.1 算法的基本概念
算法设计模式:
- 暴力求解(Brute force)
- 分治法(Divide and conquer)
- 贪婪算法(Greedy approach)
- 动态规划(Backtracking)
- 回溯法(Branch and bound)
- 分支界限法(Randomized algorithm)等
算法:算法是借助计算机解决问题的方法,是有限条确定性指令的序列
算法的性质:输入、输出、确定性、有限性
算法的描述方式:自然语言、数学公式、流程图、伪代码、程序设计语言
算法的评价方法: 正确性、有效性、易理解、易实现、通用性
例子:最大公约数
暴力解法:取min(a,b),从大到小尝试,直到两个数均可被整除。
欧几里得:max%min==0?result=min : result=(max%min和min的最大公约数)
1.2 算法复杂度
算法复杂度分析的三种情形:
- 最好情形(Best case)
- 最差情形(Worst case)
- 平均情形(Average case)
例如:二分查找(Binary search)的时间复杂度&#