经典贪心算法uva11729时间复杂度的计算
时间: 2023-11-21 12:36:55 浏览: 41
该算法的时间复杂度为O(nlogn),其中n为任务的数量。
首先,算法需要对所有任务按照执行时间从大到小排序,这一步的时间复杂度为O(nlogn)。
接着,算法需要遍历排序后的任务列表,对于每个任务,计算其完成时间,并找到可以执行该任务的士兵中能力值最高的那个士兵。这一步的时间复杂度为O(nlogn),因为需要对士兵按照能力值排序,并进行二分查找。
因此,算法的总时间复杂度为O(nlogn)。
相关问题
经典贪心算法uva11729用伪代码表示
1. 定义一个结构体Person,包含属性b和j,分别表示该人需要的时间和能够支付的钱数。
2. 定义一个长度为n的Person数组people,表示有n个人需要完成任务。
3. 将people数组按照j值从大到小排序。
4. 定义一个变量time表示当前时间,初始值为0。
5. 定义一个变量ans表示最终答案,初始值为0。
6. 遍历people数组,对于每个人:
1. 若time加上该人需要的时间小于等于该人能够支付的钱数,则将ans加上该人能够支付的钱数。
2. 否则,将ans加上该人能够支付的钱数减去time加上该人需要的时间。
3. 将time加上该人需要的时间。
7. 返回ans作为最终答案。
贪心算法活动安排时间复杂度
贪心算法活动安排的时间复杂度是O(nlogn),其中n是活动的数量。这是因为在贪心算法中,我们需要对活动按照结束时间进行排序,这个排序的时间复杂度是O(nlogn)。然后,在遍历排序后的活动列表时,每次选择结束时间最早的活动,这个步骤的时间复杂度是O(n)。因此,贪心算法活动安排的总体时间复杂度是O(nlogn)。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [算法分析-贪心算法](https://blog.csdn.net/qq_51922077/article/details/125579013)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [【趣学算法】贪心算法](https://blog.csdn.net/weixin_47936614/article/details/127487149)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]