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函数使用贪心算法解决活动选择问题。给定一组活动的开始时间和结束时间,函数会选择一组不相互冲突的活动,使得可以安排尽可能多的活动。

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

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

相关推荐
jinyishu_13 小时前
C++ 多态完全指南:从基础语法到底层原理
开发语言·c++·程序人生·面试
三声三视13 小时前
交互式用够了?用 Agent SDK 把 Claude 塞进 Python Web 服务
人工智能·python·ai·aigc·ai编程
zhanghaha131413 小时前
Python语言基础:4_数据类型转换
java·前端·python
larance13 小时前
机器学习特征预处理之标准化/归一化
开发语言·python·机器学习
tokenova13 小时前
Python 多模型统一调用封装类,一套代码兼容 GPT/Claude/Grok
python
农村小镇哥14 小时前
C#中的字符串格式化
服务器·开发语言·c#
Patrick在香港14 小时前
Python实战:用数据分析拆解一场AI大会——WAIC 2026参展企业画像、议题演变与城市格局
人工智能·python·数据挖掘·数据分析·ai编程
Android洋芋14 小时前
AI辅助C盘清理
c语言·开发语言·人工智能·ai辅助c盘清理
小猴子爱上树15 小时前
TikTok Shop视频自动翻译工具实战教程
人工智能·python·音视频·机器翻译
humbinal15 小时前
同时支持 gui & cli 的 parquet 文件查看工具,高性能小清新!
hive·python·rust·spark·开源·github·parquet