现需要申请一些场地举办一批活动,每个活动有开始时间和结束时间。在同一个场地,如果

最全题库2022-08-02  47

问题 现需要申请一些场地举办一批活动,每个活动有开始时间和结束时间。在同一个场地,如果一个活动结束之前,另一个活动开始,即两个活动冲突。若活动 A 从 1 时间开始,5 时间结束,活动 B 从 5 时间开始,8 时间结束,则活动 A 和 B 不冲突。现要计算 n 个活动需要的最少场地数。求解该问题的基本思路如下(假设需要场地数为 m,活动数为 n,场地集合为 P1,P2,…,Pm),初始条件 Pi均无活动安排:(1)采用快速排序算法对 n 个活动的开始时间从小到大排序,得到活动 a1,a2,…,an。对每个活动 ai,i 从 1 到 n,重复步骤(2)、(3)和(4);(2)从 p1开始,判断 ai与 P1的最后一个活动是否冲突,若冲突,考虑下一个场地 P2,…;(3)一旦发现 ai与某个 Pj的最后一个活动不冲突,则将 ai安排到 Pj,考虑下一个活动;(4)若 ai与所有己安排活动的 Pj的最后一个活动均冲突,则将 ai安排到一个新的场地,考虑下一个活动;(5)将 n 减去没有安排活动的场地数即可得到所用的最少场地数算法首先采用了快速排序算法进行排序,其算法设计策略是( );后面步骤采用的算法设计策略是( )。整个算法的时间复杂度是(请作答此空)。下表给出了 n=11 的活动集合,根据上述算法,得到最少的场地数为( )。A.Θ(lgn)B.Θ(n)C.Θ(nlgn)D.Θ(n2)

选项 A.Θ(lgn)
B.Θ(n)
C.Θ(nlgn)
D.Θ(n2)

答案 C

解析 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序采用的思想是分治思想。贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。整个算法的时间复杂度是O (nlogn)。场地上可以安排活动1、8、11为一个场地;活动2、6、9一个场地;活动3为一个场地;活动4、7为一个场地;活动5、10为一个场地,共5个场地。
转载请注明原文地址:https://tihaiku.com/congyezige/2408471.html

最新回复(0)