当前位置: 首页 > wzjs >正文

南阳做网站多少电话厦门 网站建设 网站开发

南阳做网站多少电话,厦门 网站建设 网站开发,南宁360网,ps海报制作教程步骤的网站Python实现贪心算法(Greedy Algorithm) 概念 贪心算法是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致结果是全局最优的算法策略。 基本特点 局部最优选择:每一步都做出当前看起来最佳的选择不可回退:一旦做出选择&#xf…

Python实现贪心算法(Greedy Algorithm)

概念

贪心算法是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致结果是全局最优的算法策略。

基本特点

  1. 局部最优选择:每一步都做出当前看起来最佳的选择
  2. 不可回退:一旦做出选择,就不可更改
  3. 高效性:通常比其他全局优化算法更快
  4. 不保证全局最优:但能得到近似最优解

基本实现框架

(以分数背包问题为栗子)

def greedy_algorithm(items, capacity):# 通常先按某种规则排序items.sort(key=lambda x: x[1]/x[0], reverse=True)#按单位重量价值(value/weight)降序排序total_value = 0 #背包中物品的总价值selected_items = [] #选择的物品列表(完整或部分物品)#开始选择for item in items:if capacity >= item[0]:capacity -= item[0]total_value += item[1]selected_items.append(item)else:# 可选: 部分物品的情况(如分数背包问题)fraction = capacity / item[0]total_value += item[1] * fractionselected_items.append((item[0]*fraction, item[1]*fraction))breakreturn total_value, selected_items

经典应用示例 😍 😍

1. 找零钱问题

def coin_change(coins, amount):coins.sort(reverse=True)count = 0change = []for coin in coins:while amount >= coin:amount -= coincount += 1change.append(coin)return count if amount == 0 else -1, change# 示例
coins = [25, 10, 5, 1]
print(coin_change(coins, 63))  # 输出: (6, [25, 25, 10, 1, 1, 1])

2. 区间调度问题

def interval_scheduling(intervals):# 按结束时间排序intervals.sort(key=lambda x: x[1])selected = []last_end = -float('inf')for start, end in intervals:if start >= last_end:selected.append((start, end))last_end = endreturn selected# 示例
intervals = [(1, 3), (2, 4), (3, 5), (4, 6)]
print(interval_scheduling(intervals))  # 输出: [(1, 3), (3, 5)]

3. 霍夫曼编码(数据压缩)

import heapqdef huffman_encoding(freq):heap = [[weight, [symbol, ""]] for symbol, weight in freq.items()]heapq.heapify(heap)while len(heap) > 1:lo = heapq.heappop(heap)hi = heapq.heappop(heap)for pair in lo[1:]:pair[1] = '0' + pair[1]for pair in hi[1:]:pair[1] = '1' + pair[1]heapq.heappush(heap, [lo[0] + hi[0]] + lo[1:] + hi[1:])return sorted(heapq.heappop(heap)[1:], key=lambda p: (len(p[-1]), p))# 示例
freq = {'a': 5, 'b': 9, 'c': 12, 'd': 13, 'e': 16, 'f': 45}
print(huffman_encoding(freq))

适用场景

  1. 问题具有贪心选择性质:局部最优能导致全局最优
  2. 最优子结构:问题的最优解包含子问题的最优解
  3. 典型应用
    • 最小生成树(Prim和Kruskal算法)
    • 最短路径问题(Dijkstra算法)
    • 背包问题的分数版本
    • 任务调度问题
    • 文件压缩(霍夫曼编码)

贪心算法的局限性👀👀

  1. 不总是能得到全局最优解
  2. 需要证明问题的贪心选择性质
  3. 对某些问题可能需要结合其他算法(如动态规划)

贪心 vs 动态规划💪💪

特性贪心算法动态规划
决策每个阶段做局部最优选择考虑所有可能的子问题
复杂度通常更低通常更高
最优解保证不总是总是
存储需求通常更少需要存储子问题结果
典型问题找零钱、任务调度背包问题、最长子序列

总结

贪心算法因其高效性在实际工程中应用广泛,但使用时需要仔细分析问题是否适合贪心策略。😼😼


文章转载自:

http://gwIK1XsR.Lbssg.cn
http://1ioUB9KV.Lbssg.cn
http://oWc9uaTj.Lbssg.cn
http://Rkr3Eebh.Lbssg.cn
http://HaY6OtJa.Lbssg.cn
http://ts1HnuQK.Lbssg.cn
http://UlOd29xi.Lbssg.cn
http://VIc5rcdW.Lbssg.cn
http://JHwoi79t.Lbssg.cn
http://nimRoAG2.Lbssg.cn
http://Qh0bhmPX.Lbssg.cn
http://nZqxjtcJ.Lbssg.cn
http://HZFjaKDA.Lbssg.cn
http://laAjwYqh.Lbssg.cn
http://8hRWCrcc.Lbssg.cn
http://xhEOVMps.Lbssg.cn
http://fV7ebt73.Lbssg.cn
http://jI1ieebv.Lbssg.cn
http://utzPko0D.Lbssg.cn
http://l8KliXPA.Lbssg.cn
http://ySVLfr65.Lbssg.cn
http://vP2OjHXX.Lbssg.cn
http://dD9pNm14.Lbssg.cn
http://XVH1kcor.Lbssg.cn
http://10zKpIDJ.Lbssg.cn
http://CGBp0FgB.Lbssg.cn
http://UA3iGmkP.Lbssg.cn
http://9JnOfOcv.Lbssg.cn
http://as9wtZaa.Lbssg.cn
http://YcQviU8G.Lbssg.cn
http://www.dtcms.com/wzjs/679045.html

相关文章:

  • 校园网站建设标书国外可以做会员网站的网站
  • 云南建设局网站首页揭阳百度seo公司
  • 国贸做网站公司青柠视频免费观看高清视频
  • 中国小康建设网是骗子网站吗?高端网站设计培训机构
  • 网站版权该怎么做呢做网站备案的问题
  • 如何更改网站关键词网站总体规划
  • 工信部icp备案流程六盘水seo
  • 网站建设 长安镇科技感网页设计
  • 网站开发前后端seo关键词的选择步骤
  • 福州网站排名提升免费网站源码博客
  • 漯河市城市建设投资公司网站营业执照年报官网入口
  • 菜鸟教程网站开发链接点击量软件
  • 杭州做网站公司哪家好甘肃省水利工程建设网站
  • 手机电脑网站建设公司管理系统名称大全
  • 伊宁市住房与城乡建设局网站wordpress使用ajax提交数据库
  • 网站建设的初衷福田网站建设-信科网络
  • 学生做的网站能攻击怎么申请pc网站域名
  • 学习网站开发心得做全网vip电影网站违法吗
  • 朔州做网站公司找网站建设需要问什么
  • 网站如何做视频链接软件ui的设计流程是什么
  • 网站建设费包括什么网站建设郑州
  • 网站域名怎么取权威数据统计网站
  • 检索类的网站建设口碑营销的好处
  • 海南政务服务网房地产网站建设与优化分析
  • 想建个图片网站游戏代理商如何赚钱
  • 网站页面设计方案怎么写wordpress添加keywords
  • 免费网站安全做企业网站用什么软件
  • 专业网站建设人工智能常用外贸网站
  • 网站做搜索关键字好吗阿里云搭建网站教程
  • 阿里云服务器 怎么设置网站环境石家庄高端网站开发