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

张家港企业做网站wordpress微信分享按钮

张家港企业做网站,wordpress微信分享按钮,wordpress化妆品模板,何鹏seo贪心算法是一种在每一步选择中都采取在当前状态下最好或最优#xff08;即最有利#xff09;的选择#xff0c;从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤其有效#xff0c;这意味着局部最优解能决定全局最优解。简单来说#xff0c;贪心…贪心算法是一种在每一步选择中都采取在当前状态下最好或最优即最有利的选择从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤其有效这意味着局部最优解能决定全局最优解。简单来说贪心算法对每个子问题都做出选择不能回退这与动态规划不同后者会保存以前的结果并根据以前的结果对当前进行选择有回退功能。 贪心算法的特点 局部最优选择在每一步都做出在当前看来最优的选择希望这些局部最优能导致全局最优解。无回退操作一旦做出了选择就不再回退即不考虑以前的选择。 贪心算法适用的问题 贪心算法适用于具有“贪心选择性质”的问题即局部最优解能决定全局最优解。贪心算法不能保证求得的最后解是最佳的也不能用来求最大或最小解的问题只能求满足某些约束条件的可行解的范围。 贪心算法的应用实例包括 找零问题如何用最少的硬币找零。最小生成树如Kruskal算法和Prim算法。单源最短路径如Dijkstra算法。任务调度问题如何安排任务以减少等待时间或延迟。压缩编码如Huffman编码。 贪心算法的设计步骤 建立数学模型来描述问题。把求解的问题分成若干个子问题。对每一子问题求解得到子问题的局部最优解。把子问题的解局部最优解合成原来解问题的一个解。 虽然贪心算法相对简单易懂但它并不总是能得到全局最优解因此在使用时需要仔细分析问题是否适合采用贪心算法。 贪心算法可以用来解决背包问题的一种特殊形式——分数背包问题Fractional Knapsack Problem但对于经典的0-1背包问题贪心算法通常无法保证找到最优解。 分数背包问题 在分数背包问题中你可以将物品分割成任意大小然后选择其中的一部分放入背包中目标是最大化背包中物品的总价值同时不超过背包的容量限制。对于这个问题贪心算法是有效的因为你可以按照物品的价值重量比单位价值来选择物品优先选择单位价值最高的物品直到背包装满为止。 0-1背包问题 对于0-1背包问题每个物品只能整体选取或不选取不能分割。这种情况下贪心算法选择物品的策略可能无法得到最优解。例如如果贪心算法只考虑物品的价值或重量而不是价值重量比那么它可能会错过更优的组合因为一个轻而价值高的物品可能比几个重而价值低的物品更有价值。 对于0-1背包问题最优解可能需要通过动态规划等方法来找到因为贪心算法可能无法考虑到所有物品组合的总价值。 总结贪心算法适用于分数背包问题但对于0-1背包问题它可能无法保证找到最优解。 以下是使用贪心算法解决分数背包问题的C语言实现。在这个实现中我们首先根据物品的价值重量比单位价值对物品进行排序然后按单位价值从高到低依次选择物品放入背包直到背包容量达到限制。 #include stdio.h #include stdlib.h// 定义物品结构体 typedef struct {float weight; // 物品重量float value; // 物品价值float ratio; // 价值重量比 } Item;// 比较函数用于排序 int compare(const void *s1, const void *s2) {Item *e1 (Item *)s1;Item *e2 (Item *)s2;return e2-ratio - e1-ratio 0 ? 1 : -1; // 降序排序 }// 贪心算法解决分数背包问题 float fractionalKnapsack(int W, Item arr[], int n) {// 按价值重量比排序qsort(arr, n, sizeof(arr[0]), compare);int curWeight 0; // 当前背包重量float finalvalue 0.0; // 结果总价值// 遍历所有物品for (int i 0; i n; i) {// 如果加入当前物品不超过最大重量加入整个物品if (curWeight arr[i].weight W) {curWeight arr[i].weight;finalvalue arr[i].value;} else {// 如果不能加入整个物品加入背包能装下的部分int remain W - curWeight;finalvalue arr[i].value * ((float) remain / arr[i].weight);break; // 背包已满}}return finalvalue; }// 测试代码 int main() {int W 50; // 背包容量Item arr[] {{10, 60}, {20, 100}, {30, 120}};int n sizeof(arr) / sizeof(arr[0]);printf(最大价值为: %.2f, fractionalKnapsack(W, arr, n));return 0; }这段代码首先定义了一个Item结构体来存储每个物品的重量、价值和价值重量比。compare函数用于根据价值重量比对物品进行降序排序。fractionalKnapsack函数实现了贪心算法首先对物品按价值重量比进行排序然后遍历排序后的物品数组根据背包剩余容量决定是否将当前物品整个或部分加入背包。最后函数返回背包中物品的最大总价值。
http://www.hkea.cn/news/14550433/

相关文章:

  • dede5.7内核qq个性门户网站源码企业网页有免费的吗
  • 营销型企业网站分析与诊断wordpress是谁写的
  • 有关做粪污处理设备的企业网站贴图库外链图床wordpress插件
  • 河南快速网站备案东莞公司注册服务平台
  • 深圳网站建设明细报价表发布平台有哪些
  • 郑州二七区网站建设软件开发流程图怎么做
  • 合肥商城网站建设多少钱中国培训网是国家公认的吗
  • 如何创立一个网站销售成功案例分享
  • 深圳网站seo推广网站seo知识
  • 企业网站多少钱一年cms 做网站模板
  • 做网站后端要学什么办文明网站做文明网民活动方案
  • 安徽创誉建设工程有限公司网站河北建设厅网站初始密码
  • 加强残联网站建设网站吸引力
  • 国内网站 备案重庆建设工程造价信息总站
  • 知识产权网站建设青岛网络公司哪家专业
  • 西安做网站比较好的公司中国服务器在外国网站有哪些
  • 网站做视频窗口接口收费么公司内部网站建设的意义
  • 广东网站设计公司价格建立一个网站需要人员
  • 学生html个人网站模板网站生成手机网站
  • 平面设计网站中文怎么快速做网站
  • 企业网站推广平台安康养老院收费
  • wordpress 网站上传外贸是什么
  • 个人在湖北建设厅网站申请强制注销怎么样自己制作网页
  • 2018年做淘宝客网站需要备案嘛ui设计的基本流程图
  • 视频素材网站建设网站制作 中企动力公司
  • 科技期刊网站建设dede电影网站模板
  • 雄安网站建设推广烟台网站排名优化报价
  • 国际化网站济南网站建设艮安
  • 阿里云快速做网站北京鲜花的网站建设
  • 辽宁省建设厅证书查询网站网站首页排名