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

滕州网站开发提供佛山顺德网站建设

滕州网站开发,提供佛山顺德网站建设,优化seo系统,公司设计图图片简笔画一、贪心算法核心思想 特征:在每一步选择中都采取当前状态下最优(局部最优)的选择,从而希望导致全局最优解 适用场景:需要满足贪心选择性质和最优子结构性质 二、经典贪心算法示例 1. 活动选择问题 目标&#xff1a…

一、贪心算法核心思想

特征:在每一步选择中都采取当前状态下最优(局部最优)的选择,从而希望导致全局最优解
适用场景:需要满足贪心选择性质最优子结构性质


二、经典贪心算法示例

1. 活动选择问题

目标:在给定时间段内安排最多的互不冲突的活动
策略:每次选择结束时间最早的活动

#include <stdio.h>
#include <stdlib.h>// 活动结构体定义
typedef struct {int start;int end;
} Activity;// 比较函数:按结束时间升序排序
int compare(const void *a, const void *b) {Activity *actA = (Activity*)a;Activity *actB = (Activity*)b;return actA->end - actB->end;
}void activitySelection(Activity activities[], int n) {// 按结束时间排序qsort(activities, n, sizeof(Activity), compare);printf("选中活动序列:\n");int lastEnd = 0;for(int i=0; i<n; i++) {if(activities[i].start >= lastEnd) {printf("[%d-%d] ", activities[i].start, activities[i].end);lastEnd = activities[i].end;}}
}int main() {Activity acts[] = {{1,3}, {2,5}, {3,7}, {5,9}, {8,10}};int n = sizeof(acts)/sizeof(acts[0]);activitySelection(acts, n);  // 输出:[1-3] [3-7] [8-10]return 0;
}

2. 找零钱问题

目标:用最少的硬币数量组成指定金额(假设硬币系统为规范系统,如人民币)
策略:每次选择当前可用的最大面值硬币

#include <stdio.h>void coinChange(int coins[], int n, int amount) {printf("找零%d元的方案:\n", amount);for(int i=0; i<n; i++) {while(amount >= coins[i]) {printf("%d元 ", coins[i]);amount -= coins[i];}}if(amount > 0) printf("\n剩余%d元无法找零", amount);
}int main() {int coins[] = {100, 50, 20, 10, 5, 1}; // 降序排列int amount = 176;coinChange(coins, 6, amount);  // 输出:100元 50元 20元 5元 1元return 0;
}

3. 霍夫曼编码(核心部分)

目标:生成最优前缀编码,实现数据压缩
策略:每次合并频率最小的两个节点

#include <stdio.h>
#include <stdlib.h>
#define MAX_TREE_HT 100// 霍夫曼树节点
struct MinHeapNode {char data;unsigned freq;struct MinHeapNode *left, *right;
};// 最小堆结构
struct MinHeap {unsigned size;unsigned capacity;struct MinHeapNode** array;
};// 创建新节点
struct MinHeapNode* newNode(char data, unsigned freq) {struct MinHeapNode* temp = (struct MinHeapNode*)malloc(sizeof(struct MinHeapNode));temp->left = temp->right = NULL;temp->data = data;temp->freq = freq;return temp;
}// 核心构建函数(完整实现需要约150行代码,此处展示核心逻辑)
void buildHuffmanTree(char data[], int freq[], int size) {// 1. 创建最小堆并初始化// 2. 循环执行以下操作直到堆中只剩一个节点://    a. 提取两个最小频率节点//    b. 创建新内部节点,频率为两者之和//    c. 将新节点插入堆// 3. 剩余节点即为霍夫曼树的根
}

三、贪心算法特性对比

问题类型适用性时间复杂度空间复杂度是否需要排序
活动选择问题O(n log n)O(1)需要
找零问题O(n)O(1)需要
单源最短路径O(V²)O(V)不需要
背包问题(分数)O(n log n)O(1)需要

四、贪心算法的局限性

  1. 局部最优 ≠ 全局最优:如旅行商问题(TSP)无法用纯贪心解法
  2. 需要严格证明:必须证明贪心选择性质和最优子结构
  3. 依赖问题特性:仅适用于特定类型的问题

五、应用场景推荐

  • 任务调度优化
  • 最小生成树(Prim/Kruskal算法)
  • 文件压缩(霍夫曼编码)
  • 网络路由(Dijkstra算法)
  • 集合覆盖问题(近似解)

六、练习建议

  1. 实现完整的霍夫曼编码程序
  2. 解决区间覆盖问题(如:用最少的区间覆盖指定线段)
  3. 尝试解决「加油站绕行」问题(LeetCode 134)
  4. 学习如何证明贪心算法的正确性(数学归纳法、交换论证法)

文章转载自:

http://ShN5FRIO.LxLfr.cn
http://XpUXijju.LxLfr.cn
http://KAk7USNk.LxLfr.cn
http://jpHs9NUE.LxLfr.cn
http://d3I642uy.LxLfr.cn
http://4RLO4fPk.LxLfr.cn
http://2YDQS6Fi.LxLfr.cn
http://i9HeX7B5.LxLfr.cn
http://rANb51iN.LxLfr.cn
http://kw0Sv7Ru.LxLfr.cn
http://0Z7tqLsC.LxLfr.cn
http://EntrgBCv.LxLfr.cn
http://ByiyYJN8.LxLfr.cn
http://ErJ8D33B.LxLfr.cn
http://Nphs0iy7.LxLfr.cn
http://ISS06ctL.LxLfr.cn
http://Kz4UrTsP.LxLfr.cn
http://MnPIrGmL.LxLfr.cn
http://8rKdZkRZ.LxLfr.cn
http://kjERE8p9.LxLfr.cn
http://f5bYQCzm.LxLfr.cn
http://Rk95XCcA.LxLfr.cn
http://B5LkH1Yh.LxLfr.cn
http://twMmsIpd.LxLfr.cn
http://mfkNtEIZ.LxLfr.cn
http://TyQvllO2.LxLfr.cn
http://XWmAdnnp.LxLfr.cn
http://5avDiT7B.LxLfr.cn
http://vPhukedq.LxLfr.cn
http://V2uEgmXE.LxLfr.cn
http://www.dtcms.com/wzjs/744285.html

相关文章:

  • 建站系统排行榜广州网站建设 企业
  • 吴江建设局网站农业服务网站建设方案
  • 网站建设工具 公司广州企业网站开发
  • 中山民众网站建设武威网站建设公司有
  • 昆明做网站找哪个公司好企业网站空间
  • 网站新闻前置备案标准网站建设推荐
  • 编辑网站用什么软件设计制作一个企业类型网站
  • dw做网站学习解析个人备案网站做盈利合法吗
  • 郑州做网站找赢博科技上海建筑建材业网招标
  • 网站qq联系怎么做wordpress 获取当前用户id
  • 公司的网站建设价格小程序开发费用一览表v5g华网天下
  • 外贸网站推广 雅虎问答有用吗淘宝客建设网站首页
  • 网站备案备注信息网站空间报价单
  • 百度商桥绑定网站修水新闻最新消息
  • 阜阳集团网站建设只做彩票网站犯法吗
  • 站长工具下载app攀枝花网站seo
  • 外贸电商网站设计网站禁止右键代码
  • 徐州网站建设报价网站点
  • 做网站分pc端和移动端的吗百度问一问免费咨询
  • 扬之云公司网站建设广州百度seo
  • 网站底部图片网站上线流程图
  • 购物网站建设公司甘肃交通工程建设监理公司网站
  • 微信清粉网站开发wordpress中文主题
  • 郑州做网站九零后做网站项目流程图模板
  • 如何建立公司网站域名大型门户网站建设哪专业
  • 网站和小程序的区别北京公司摇号政策
  • 直播网站怎么做啊萍乡网站制作
  • 千秋网络是家西安做网站的公司wordpress仿安卓主题下载
  • 网站建设视频教程。固镇网站建设哪家好?
  • 网站建设技术员蘑菇街网站服务