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

news2024/11/29 2:49:12

软考-- 软件设计师(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、合并:将问题的解合并成原问题的解。

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

三、回溯法

在这里插入图片描述

四、贪心法

在这里插入图片描述

五、动态规划法

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2062286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

当《黑神话:悟空》中的天命人,被AI换脸成老外…

前言 挡不住,根本挡不住! 《黑神话:悟空》,这款由游戏科学公司制作的, 以中国神话为背景的角色扮演游戏,8月20日一上线, 就连续霸榜Steam、WeGame 等平台销量榜首, 肉饼的朋友圈…

软件测试学习笔记丨多表查询及子查询

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/31940 一、多表简介 定义:结合两个或多个表来执行SQL数据库操作,这通常涉及到一个或多个表的关联,基于某些共享的列(通常是键)之间…

C++面试基础系列-polymorphic多态性

系列文章目录 文章目录 系列文章目录C面试基础系列-polymorphic多态性Overview1.polymorphic多态性2.编译时多态的实现示例代码:函数重载示例:运算符重载示例:模板示例: 3.运行时多态的实现示例代码 4.编译时多态的优点关于作者 C…

高校考勤小程序的设计与实现---附源码131039

摘 要 随着计算机的发展及网络技术的应用,当今社会正快速向信息自动化社会前进,信息自动化的作用也闲的的尤为重要,特别是各行业的管理领域,智能化信息处理已是提高效率、规范管理、客观审查的最有效方法。近年来,随着…

双模显示器是什么?原来是可变化的显示屏

随着科技的进步和人们对高品质视觉体验需求的增加,显示技术正在经历一场深刻的变革。近年来,双模显示器逐渐引起了广泛关注,成为显示器设计的新趋势。那么什么是双模显示器呢?它都有哪些优势?下面就一起来了解一下。 …

C++学习笔记----4、用C++进行程序设计(三)---- 类间关系

作为一名程序员,会不可避免地碰到不同的类具有相同的特点,或者看起来相互之间有一定的关系。面向对象的编程语言提供许多技术来处理类间的这种关系。比较令人迷惑的部分就是理解 这些关系到底是什么?有两种主要的类间关系--复合关系&#xff…

【三维语义分割模型】PAConv

【版权声明】本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。 参考书籍:《人工智能点云处理及深度学习算法》 本文为专栏《Python三维点云实战宝典》系列文章,专栏介绍地址“【python三维深度学习】python…

780nm扫地机器人模组出现质量问题怎么检测?

随着智能家居的普及,扫地机器人已成为现代家庭不可或缺的清洁助手。其中,780nm扫地机器人模组作为扫地机器人的核心部件之一,其质量和性能直接影响到扫地机器人的整体表现。然而,在使用过程中,有时会遇到模组出现质量问…

无线领夹麦克风怎么挑选?选购领夹麦克风必看的五大智商税!

在数字音频技术飞速发展的今天,无线领夹麦克风已经不再是遥不可及的奢侈设备,而逐渐成为普通人记录生活、录制音视频、乃至直播互动的得力助手。但如今市面上的麦克风多到让眼眼花缭乱,对于一些没有经验的新手小伙伴,更是不知从何…

以简单的例子从头开始建spring boot web多模块项目(二)-mybatis简单集成

继续使用以简单的例子从头开始建spring boot web多模块项目&#xff08;一&#xff09;中的项目进行mybatis集成。 1、pom.xml文件中&#xff0c;增加相关的依赖包的引入&#xff0c;分别是mybatis-spring-boot-starter、lombok、mysql-connector-java 如下&#xff1a; <d…

python实用教程(二):安装配置Pycharm及使用(Win10)

上一篇&#xff1a;python实用教程&#xff08;一&#xff09;&#xff1a;安装配置anaconda&#xff08;Win10&#xff09;-CSDN博客 1、简介及下载 PyCharm是一款功能强大的 Python 编辑器&#xff0c;具有跨平台性。是Jetbrains家族中的一个明星产品。 下载地址&#xff…

Nacos漏洞检测总结

弱口令 默认账号密码 nacos/nacos POST /nacos/v1/auth/users/login HTTP/1.1 Host: xxxx:8848 Connection: keep-alive Content-Length: 29 Accept: application/json, text/plain, */* User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like…

高效分页策略:掌握 LIMIT 语句的正确使用方法与最佳实践

本文主要介绍limit 分页的弊端及线上应该怎么用 LIMIT M,N 平时经常见到使用 <limit m,n> 合适的 order by 来实现分页查询&#xff0c;这样做到底性能如何呢&#xff1f; 先来简单分析下&#xff0c;然后再实际验证一下。 无索引条件下&#xff0c;需要做大量的文件排…

代码随想录 刷题记录-13 回溯(2)组合问题

在这里涉及到的回溯中的抽象树&#xff0c;都是“选哪一个元素”的思想。 1.第77题. 组合 回溯法就用递归来解决嵌套层数的问题。 把组合问题抽象为如下树形结构&#xff1a; 可以看出这棵树&#xff0c;一开始集合是 1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c; …

探索Python交互式编程的新境界:Python-prompt-toolkit的魔法

文章目录 探索Python交互式编程的新境界&#xff1a;Python-prompt-toolkit的魔法背景&#xff1a;为何选择Python-prompt-toolkit&#xff1f;Python-prompt-toolkit是什么&#xff1f;如何安装Python-prompt-toolkit&#xff1f;简单使用&#xff1a;Python-prompt-toolkit的…

MongoDB Compass初体验

入坑Mongodb也好多年了&#xff0c;客户端一直都是使用的Robomongo&#xff0c;后改名为Robo 3T了&#xff0c;现在又改名为Studio 3T&#xff0c;还分了免费版和付费版。 最近换了新电脑&#xff0c;需要重新安装Mongodb的客户端&#xff0c;加上公司对安装软件的各种限制&…

国内首颗ASIL D级高端旗舰级R52+内核车规MCU发布,中国汽车芯片强势崛起

8月21日&#xff0c;在2024紫光同芯合作伙伴大会上&#xff0c;紫光同芯正式发布第二代THA6系列高端旗舰级新品THA6412。该芯片在安全性、可靠性、算力、实时性等方面全方位升级&#xff0c;是继今年7月紫光同芯发布THA6206芯片后&#xff0c;又一款通过ASIL D产品认证的旗舰级…

GDB的基本使用(1)

我有话说 因为时间和精力原因&#xff0c;本文写的虎头蛇尾了&#xff0c;除了启动调试与程序执行以外只有少量截图演示&#xff0c;只是简单的说明。如果有需要可以联系我&#xff0c;我有时间的话会把演示补上&#xff0c;谢谢理解。 启动调试与程序执行 启动调试并传递参数…

小白快速上手 SRC漏洞挖掘科普攻略!零基础入门到精通,收藏这一篇就够了

前言 随着网络安全的快速发展&#xff0c;黑客攻击的手段也越来越多样化&#xff0c;因此SRC漏洞挖掘作为一种新的网络安全技术&#xff0c;也在不断发展和完善。那么&#xff0c;作为一个网安小白如果想要入门SRC漏洞挖掘&#xff0c;需要掌握哪些知识呢&#xff1f;以下是本…

css属性 clip-path切割多边形polygon

如果我们要把一个矩形切割成如图所示&#xff0c;可以使用 clip-path来做切割 clip-path&#xff1a;polygon&#xff08;x1 y1&#xff0c;x2 y2&#xff09;里面的参数是切割后每个顶点的坐标&#xff0c;坐标的原点是div的左上角&#xff0c;每个顶点的坐标如下&#xff1a…