Python贪心算法

贪心算法(Greedy Algorithm)是一种常见的算法设计策略,它在每一步选择当前最优解,希望通过局部最优解最终得到全局最优解。贪心算法通常适用于满足一些特定条件的问题,例如货币找零、活动选择、任务调度等。贪心算法的优势在于简单、高效,但并不适用于所有问题。

cpp 复制代码
def activity_selection(start, finish):
    n = len(start)
    activities = []
    i = 0
    activities.append(i)
    
    for j in range(1, n):
        if start[j] >= finish[i]:
            activities.append(j)
            i = j

    return activities

# 测试示例
start_time = [1, 3, 0, 5, 8, 5]
finish_time = [2, 4, 6, 7, 9, 9]
selected_activities = activity_selection(start_time, finish_time)
print("Selected activities:", selected_activities)

在上面的示例中,activity_selection函数使用贪心算法解决活动选择问题。给定一组活动的开始时间和结束时间,函数会选择一组不相互冲突的活动,使得可以安排尽可能多的活动。

贪心算法的关键在于每次选择结束时间最早的活动。在循环中,如果下一个活动的开始时间大于等于当前活动的结束时间,则将其加入到选择的活动列表中。

贪心算法的一个重要特征是贪心选择性质,即每一步都选择最优解,而不考虑未来的选择。因此,贪心算法的正确性通常需要证明。

相关推荐
无限的鲜花2 小时前
反射(原创推荐)
java·开发语言
hhzz3 小时前
基于监控视频的水位尺自动识别技术方案与实现
python·opencv·yolo·图像识别·cv
yongche_shi3 小时前
ragas官方文档中文版(五十)
开发语言·python·ai·ragas·如何评估和改进 rag 应用
一路向北he3 小时前
字节钢铁军团--“提供情境,而非控制”
java·开发语言·前端
weixin_408099674 小时前
OCR批量识别图片方案:从手动处理到自动化API系统(Python/Java/PHP实战)
图像处理·python·ocr·文字识别·api调用·批量识别·石榴智能
AI行业学习4 小时前
Notepad++ 官方下载 + 完整安装 + 全套优化配置(2026最新)
开发语言·人工智能·python·前端框架·html·notepad++
大圣编程5 小时前
Python中continue语句的用法是什么?
开发语言·前端·python
云烟成雨TD5 小时前
LangFlow 1.x 系列【5】可视化编辑页面功能说明
人工智能·python·agent
upgrador5 小时前
基础知识:C++ STL构造函数的左闭右开惯例及其实现原理
开发语言·c++
yoothey6 小时前
报废审批流规则引擎设计——责任链模式完整实现
linux·开发语言·bash