15.数据结构和算法应用
0.大纲

1.分治法
大问题拆分成规模小的问题,往往用到递归

2.1递归技术

2.2二分查找

2.回溯法
八皇后
深度优先搜索法

3.贪心法
不一定得到的是最优解,性价比方案
判断贪心法,看每一步是不是最优解,而最终的结果不见得是最优解
0-1背包问题,就是如下,一个背包装东西只能装一种

4.动态规划法
逻辑复杂,跟分治法类似
动态规划法特点,查表,就是拆分问题,将问题记录到表,然后查表

5.案例分析
我们一般先不处理代码填空的,先处理其他的出,下面这两个我们保证拿到分,就行,代码不一定答对
- 1.根据题目算法,带入,得出结果
- 2.计算时间复杂度
案例1






两个都是贪心法

都是o(n),选最高的时间复杂度

不能,就是一种贪心算法,只是每部局部是最优,是得出当前情况最好的,但不见得是最优
案例2




递归式 要加上时间复杂度
渐进时间复杂度
空间复杂度,多少个交换,就是多少个交换空间


n1+n2
6.常见选择题
- 动态规划 最优的,是
- 回溯法 深度优先
- 贪心法 最小生成树 ,哈弗曼编码
基本有序的,最合适是插入排序,
如果关键字再0到9之间,最适宜的是基(计)数排序
