软件设计师全套备考系列文章9 -- 算法设计与分析

软考-- 软件设计师(9)-- 算法设计与分析



前言

考试时间:每年5月、11月,软件设计师每年都会开考。
考试条件:三不限
考试形式: 一共两门
	计算机于软件工程基本知识--120分钟--机考--选择题--75分(45及格)
	软件设计--120分钟--机考--简答题(4道必做,1道二选一做)--75分(45及格)
	两门都得一次性及格才算通过,一共4小时考试时间。

软件行业从事人员学习视频:https://www.bilibili.com/video/BV1Qc411G7fB?vd_source=d82c92f6c1fd8c6785c6b557a68cb7b3

推荐博客:http://t.csdnimg.cn/5VzY5
推荐bilibli博主:zst_2001

由于本人从事软件开发4年,有一定的基础,所以本系列博客笔记皆从于第一个视频记录笔记。

一、章节考点

Tips:会出个下午题,15分,是个压轴题,这一章很重要 也 很难,视频博主建议是了解基本概念,能区分算法用的那种思想即可,但是大家看我这个文章应该都有点基础,所以还是建议吃透这一章,拿下这15分。c语言必须掌握,下午题必考。Java和c++要会其中一门。
分治法、回溯法、贪心法、动态规划法

二、分治法

分治法:这个和java多线程里面的ForkJoin 是同样的算法,相信大家如果做过数据清洗,应该使用过forkJoin
三个步奏:
	1、分解:将原问题分解为一系列的子问题;
	2、求解:递归求解哥哥问题的子问题。若子问题足够小,则直接求解;
	3、合并:将问题的解合并成原问题的解。

详细分析解答推荐博客:
	http://t.csdnimg.cn/0nfz5;
	http://t.csdnimg.cn/hBVXW;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、回溯法

在这里插入图片描述

四、贪心法

在这里插入图片描述

五、动态规划法

动态规划法推荐博客:
	http://t.csdnimg.cn/0XFE5;
	http://t.csdnimg.cn/5zPjh;
	http://t.csdnimg.cn/dKcLZ。

在这里插入图片描述

在这里插入图片描述

0-1背包问题:表示一个物体要不全部装进去,要不不装进去;必须整体装进去。
部分背包问题:表示一个物体可以切割一部分装进去。部分背包问题一般来说要计算一个物品单位体重的价值,然后部分装进去。
下面是 0-1 背包问题,第一个问视频博主的思想是:
	1、找出背包价值最大的两个价值6 6,装进去背包还剩余42、比较一下就只能装入容量剩余4只能装下2了,2对应的价值为3,故总价值x = 6+6+3 = 15;
	这种思想是穷举法,可以快速的解决小问题,但是真正0-1背包问题的解决思路肯定不是这样的
这个算的太简陋了。待我研究研究....... 

分析一下下面的式子:
	c(i,j):价值;
	i:物品数量;
	j:物品容量
	右边大括号括起来的就是动态规划法的递归算法:
		1、若i=0或j=0c(i,j) = 02、若w[i]>j,c(i,j) = c(i-1,j)3、其他情况为max{c(i-1,j)c(i-1,j-w(i))}
		
	c(i,j)的定义:就是 i个物品、容量j的0-1背包问题的最大包装价值,带入到本题目中就是求解c(n,w)。
	再带入数值的话,其实就是求解c(5,10)。而这个是个递归算法,其最终算到的肯定是i=0和j=0,带入本体题就是n=0和w=0。
	也就是说,从n=5、w=10到n=0、w=0要计算多少步奏,就是时间复杂度,也就是O(nw)

吐槽一下:这个视频博主讲的真的是太潦草了,没点基础真不行,没基础的还是看看zst的吧。有基础的看完这个,二轮看zst的,或者背诵知识
点的时候用zst的笔记背诵,这个完全就是进阶人员快速掌握知识看的,如果你只剩不到一个月,那看这个吧。

在这里插入图片描述

部分背包问题:
	1、将五个物品单位重量的价值算出来并且归并排序得到{31.51.50.8330.8}
	2、计算最大价值 = 3*2+1.5*2+1.5*4+0.833*2 = 16.666,选D

归并排序的算法时间复杂度为O(nlgn),选择B

算法时间复杂度排序口诀(->):常对幂指阶  

在这里插入图片描述

六、历年考点

在这里插入图片描述
动态规划法11次,分治法4次,回溯法3次,贪心法1次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

练习两年半的攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值