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

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

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

相关推荐
qq_3422958213 小时前
c++怎么获取文件的压缩比例信息_Windows压缩卷特性【详解】
jvm·数据库·python
weixin_4585801213 小时前
CSS如何控制列表间距_使用padding-left与盒模型
jvm·数据库·python
QC·Rex13 小时前
Kubernetes 生产环境调试安全最佳实践:2026 年完整指南
安全·贪心算法·kubernetes
m0_6178814213 小时前
Tailwind CSS如何实现固定定位布局_使用fixed与z-index控制CSS层级
jvm·数据库·python
iiiiyu13 小时前
常用API(SimpleDateFormat类 & Calendar类 & JDK8日期 时间 日期时间 & JDK8日期(时区) )
java·大数据·开发语言·数据结构·编程语言
故事和你9113 小时前
洛谷-数据结构1-4-图的基本应用2
开发语言·数据结构·算法·深度优先·动态规划·图论
m0_6742946413 小时前
Cgo 中正确处理 const char- 类型回调参数的实践方法
jvm·数据库·python
justjinji13 小时前
Chart.js 4 中实现基于数据极值的垂直线性渐变填充
jvm·数据库·python
qq_120840937113 小时前
Three.js 工程向:Clock、deltaTime 与固定步长主循环
开发语言·javascript·ecmascript
小菜同学爱学习13 小时前
夯实基础!MySQL数据类型进阶、约束详解与报错排查
开发语言·数据库·sql·mysql