摘要:2025下半年软件设计师案例题怎么做?2025下半年软件设计师案例简答题有什么参考吗?希赛网为考生整理了一份2025下半年软件设计师案例简答题合集资料,希望能帮助到考生。有需要的同学还可以在本文资料处下载该资料的PDF版本。
针对2025下半年软件设计师案例题怎么做?2025下半年软件设计师案例简答题有什么参考吗?的问题,希赛网为考生整理了一份2025下半年软件设计师案例简答题合集资料,希望能帮助到考生。因篇幅有限,本文只展示部分内容,考生可在本文文首本文资料处或文末的资料下载栏目下载PDF完整版。
2025下半年软件设计师案例简答题合集部分内容如下:
1、阅读下列说明和图,回答问题。
活动选择问题是指若干个具有竞争性的活动要求互斥使用某一公共资源时,如何选择最大的相容活动集合。假设有一个需要使用某一资源(如场地等)的N个活动组成的集合S={a1, a2, ... , an},该资源一次只能被一个活动占用。每个活动ai有一个开始时间si和结束时间fi,且0≤si≤fi<∞。一旦被选择后,活动ai就占据半开时间区间[si,fi)。如果两个活动ai和aj的时间区间互不重叠,则称活动ai和aj是兼容的。活动选择问题就是要选择出一个由互相兼容的活动组成的最大子集合。考虑下表中的活动集合,其中各活动采用归并排序算法进行递增排序。从表中可以看到,子集{a3,a9,a11}由相互兼容的活动组成。然而,它不是最大的子集,子集{a1,a4,a8,a11}更大,事实上,{a1,a4,a8,a11}是一个最大的相互兼容活动子集。另外,还有一个最大子集是{a2,a4,a9,a11}
该问题具有贪心选择性质,因此可以用贪心法跟简单地求解。
定义集合sij={ak∈s:fi≤sk<fk≤sj}。为了完整地表示问题,加入两个虚拟活动, a0和an+1,其中,f0=0,sn+1=∞,这样s =s0,n+1。
对于任一非空子问题sij,设am是sij中具有最早结束时间的活动。那么:
(1)活动am在sij的某个最大兼容活动子集中。
(2)自互动sim为空,所以选择am将使smi为唯一可能非空的子问题。
【c代码】
下面是算法的C语言实现。
1、代码说明
s[]:存放活动的开始时间。
f[]:存放活动的结束时间。
OptimalSubset[]:存放能够兼容的活动序号。
Index,m,activity_number:数组下标。下标从1开始可以表示对应活动的编号。
【问题1】 (8分)
根据说明和C代码,填充C代码中的空(1) ~ (4)。
【问题2】(5分)
根据题干说明和以上C代码,递归算法的时间复杂度为(5)(用O符号表示);迭代算法的时间复杂度为(6)(用O符号表示)。整个活动选择过程的时间复杂度为(7)(用O符号表示)。
【问题3】(2分)
下表给出了n=11的活动集合,根据上述算法描述和C代码,得到的相互兼容的活动个数为(8)。
软考科目怎么选?
微信扫码下方二维码找答案
▼ ▼ ▼
热门:系统集成项目管理工程师备考 | 2025下半年软考高级选科
推荐:系统规划与管理师网络课堂 | 2025下半年软考报名时间及入口
课程:系统规划与管理师报考指南 | PMP课程 | 25下半年系统集成备考经验
软考备考资料免费领取
去领取