数据结构与算法:算法练习

本文介绍了贪心算法在根据身高重建队列问题中的应用,以及动态规划解决三角形最小路径和与合唱团安排问题。同时探讨了不同排序算法的应用场景,如插入排序、选择排序、归并排序,并提出了一种解决全班作业排序的方案——利用归并排序。此外,还讨论了如何将排序算法封装到自定义模块mySort并发布到pypi网站。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 贪心算法问题: 根据身高重建队列

在这里插入图片描述

# encoding=utf-8
"""
Date:2019-07-18 13:43
User:LiYu
Email:liyu_5498@163.com

"""
info = [
    [7, 0], [4, 4], [7, 1],
    [5, 0], [6, 1], [5, 2]
]


def high_sort(info):
    # 先按照身高从大到小排序[[7, 0], [7, 1], [6, 1], [5, 0], [5, 2], [4, 4]]
    high_sort_info = sorted(info, key=lambda x: x[0], reverse=True)
    new_info = []
    for i in range(len(high_sort_info)):
        # 如果该人前面比他高的等于他的位次,则不变
        if high_sort_info[i][1] == i:
            new_info.insert(i, high_sort_info[i])
            # print(new_info)
        # 不等于,则他的位置应该为索引是 比他高的人数 的位置
        else:
            new_info.insert(high_sort_info[i]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值