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

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

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

相关推荐
半摆烂日常10 小时前
自建WMS和买成品:三年成本对比
大数据·服务器·数据库·python·深度学习·低代码·numpy
励志不掉头发的内向程序员10 小时前
【LibreCAD 2D架构】从鼠标点击到图形创建:RS_ActionDrawLine交互流程与状态机解析
开发语言·c++·qt·学习·系统架构·计算机外设·交互
2601_9622965110 小时前
Python的哈希hashlib模块详细解读
python·md5·sha·加密算法·hashlib
www_aiyuanma_vip10 小时前
Java个人博客系统
java·开发语言
chinesegf10 小时前
comfyui便携版的基础使用
python
OPEN-F10 小时前
ROS2系列教程:Gazebo插件(关节控制/IMU/激光雷达)
c++·python·数码相机·算法·机器人
leoZ23110 小时前
第 7 篇:进阶——校验、联动、列表页
开发语言·前端·javascript·vue.js·人工智能·目标检测·ecmascript
临沂GEO10 小时前
芝麻开门GEO|AI数字化新趋势,助力企业线上长效增长
大数据·人工智能·python
luj_176810 小时前
虚实交融中的真实人物塑造
c语言·开发语言·网络·经验分享·算法
haolin123.11 小时前
STL vector底层揭秘:从构造到迭代器失效
开发语言·c++·算法