《算法设计与分析基础》读书笔记

本文是《算法设计与分析基础》的读书笔记,探讨了从蛮力法到动态规划等不同算法设计策略。文章指出,虽然蛮力法效率低,但在寻找规律和优化过程中起到关键作用,而贪婪、动态规划、回溯和分治等方法则是更聪明的解题策略。后续章节深入讲解了分治法、减治法、变治法等,以及如何在时间和空间之间进行权衡。
摘要由CSDN通过智能技术生成

一、算法与问题

算法是解决问题的一系列步骤;

理解问题,设计算法的一般过程:



解决问题的时候可以首先考虑蛮力法,因为蛮力法一般都能解决,只是效率比较低。使用蛮力法解决问题之后可以再考虑使用其他算法思想进行优化。在使用蛮力法的时候如果解决起来比较费力,可以再次思考一下问题,看看能不能找到什么规律,然后,在该规律之上再求解。


蛮力法往往需要从头到尾遍历所有的可能,而且有时候一个问题可能会有好几种遍历策略,有的策略能够得到问题的解,有一些不能导出最终问题的解,所以,使用蛮力法的时候遍历策略的选择往往是很重要的。好的遍历策略甚至能起到跟贪婪,动态规划策略一样的作用,从这个意义上来说贪婪,动态规划,回溯,分支界限也算是一种蛮力法,只不过是聪明的蛮力法。

优化的思路有以下3个方向:

1、蛮力法--->贪婪,动态规划--->回溯,分支界限

2、分治,减治,变治

3、时空权衡


二、蛮力法

蛮力法是一种简单直观的解决问题的办法,常常直接基于问题的描述和所涉及的概念。蛮力法所能解决的问题域也是最广的,但是效率往往不高;

使用蛮力法的算法有:

1、冒泡排序,选择排序

2,、顺序匹配

3、穷举法

三、分治法

分治法设计步骤:
1、将问题实例划分为同一问题的较小的实例,最好拥有同样的规模;
2、求解较小的实例;
3、合并较小问题的解;
分治法算法:
1、归并排序,快速排序
2、折半查找
3、二叉树遍历(前序,中序,后序)
4、大整数乘法和矩阵乘法的分治
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值