背包问题 插入排序 快排 TSP问题(hamiltonian 回路) Python实现

这篇博客介绍了如何使用Python解决经典的计算机科学问题,包括0-1背包问题、插入排序算法、快速排序算法,并探讨了旅行商问题(TSP,即汉密尔顿回路问题)的Python实现。博主分享了实验过程中的代码和思路,为读者提供了优化算法的参考。
摘要由CSDN通过智能技术生成
#encoding:UTF-8  

r"""
knapsack problem

insertion sort
quick sort


"""
goods = [
# (5, 10)
(4, 9)
,(3, 6)
,(5, 1)
,(2, 4)
,(5, 1)
# ,(4, 9)
# ,(4, 20)
# ,(3, 6)
# ,(4, 20)
# ,(2, 4)
# ,(5, 10)
# (2, 6)
# ,(2, 3)
# ,(6, 5)
# ,(5, 4)
# ,(4, 6)
]
# 19
# goods = [
# (4, 20)
# ,(3, 6)
# ,(4, 20)
# ,(2, 4)
# ]
# 40
# goods = [
# (2, 6)
# ,(2, 3)
# ,(6, 5)
# ,(5, 4)
# ,(4, 6)
# ]
# 15
# [(weight, value)]

def knapsack(capacity = 10):
    r"""
    .. [1] http://www.hawstein.com/posts/dp-knapsack.html
    """
    # bag = []
    # d = {i:[] for i in range(len(goods))}       
    # in weight i of bag, total max value is d[i]
    d = [0 for _ in range(capacity)]

    for w,v in goods:
        for i in range(capacity-1, 0, -1):
            # d[i] = d[i-1]
            if i >= w:
                d[i] = max([d[i], d[i-w] + v])
            # else:
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值