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

贵港网站建设培训wordpress先使用说明

贵港网站建设培训,wordpress先使用说明,新泰网络推广公司,深圳市建设集团是国企吗贪心算法(Greedy Algorithm)是一种常用的算法思想,通常用来解决最优化问题。可以使用贪心算法来解决一些问题,例如找零钱、任务调度等。 以找零钱为例,简单介绍一下贪心算法的应用 假设有一堆不同面额的硬币&#xff…

贪心算法(Greedy Algorithm)是一种常用的算法思想,通常用来解决最优化问题。可以使用贪心算法来解决一些问题,例如找零钱、任务调度等。

以找零钱为例,简单介绍一下贪心算法的应用
假设有一堆不同面额的硬币,现在需要用最少数量的硬币凑出某个金额。这时可以使用贪心算法来解决。

#include <stdio.h>void findMinCoins(int coins[], int n, int amount) {int count = 0;printf("使用的硬币面额为:");// 从面额最大的硬币开始尽可能多地使用for (int i = 0; i < n; i++) {while (amount >= coins[i]) {amount -= coins[i];count++;printf("%d ", coins[i]);}}printf("\n总共使用了 %d 枚硬币\n", count);
}int main() {int coins[] = {25, 10, 5, 1};  // 硬币的面额int n = sizeof(coins) / sizeof(coins[0]);int amount = 93;  // 需要凑出的金额findMinCoins(coins, n, amount);return 0;
}

我们定义了一个findMinCoins函数来找零,并在main函数中调用它。该算法每次都选择面额最大的硬币来尽量多地凑出金额。这样就能保证所需硬币数量最小,这就是贪心算法的思想。

在实际应用中,贪心算法可能不适用于所有场景,但对于特定类型的问题,它是一种简单而高效的解决方案。

活动选择问题

#include <stdio.h>// 假设活动已经按照结束时间非降序排列
void activitySelection(int start[], int finish[], int n) {printf("Following activities are selected:\n");// 第一个活动总是被选中int i = 0;printf("%d ", i);// 对剩下的活动进行遍历for (int j = 1; j < n; j++) {// 如果这个活动的开始时间大于或等于上一个活动的结束时间,那么选择这个活动if (start[j] >= finish[i]) {printf("%d ", j);i = j;}}
}int main() {int start[] = {1, 3, 0, 5, 8, 5};int finish[] = {2, 4, 6, 7, 9, 9};int n = sizeof(start) / sizeof(start[0]);activitySelection(start, finish, n);return 0;
}

在这个例子中,我们首先将活动按照结束时间非降序排列,然后从第一个活动开始,依次检查后续活动的开始时间是否满足条件。

如果满足条件,就选择该活动并更新当前活动的索引。活动选择问题是一个典型的可以通过贪心算法解决的问题,基本思路是每一步都做出一个局部最优的选择,以期望最终能得到全局最优解。

贪心算法的活动选择问题是一个经典的应用场景,通常涉及到安排一系列活动,每个活动都有一个开始时间和结束时间,而资源(例如会议室)只能同时被一个活动使用。目标是安排出尽可能多的互不相交的活动。

也可以运用结构体

#include <stdio.h>// 活动结构体,包含开始时间和结束时间
struct Activity {int start;int finish;
};// 将活动按照结束时间非降序排列的比较函数
int compare(const void *a, const void *b) {return (((struct Activity *)a)->finish - ((struct Activity *)b)->finish);
}// 贪心算法解决活动选择问题
void activitySelection(struct Activity arr[], int n) {printf("Following activities are selected:\n");// 第一个活动总是被选中int i = 0;printf("%d ", i);// 对剩下的活动进行遍历for (int j = 1; j < n; j++) {// 如果这个活动的开始时间大于或等于上一个活动的结束时间,那么选择这个活动if (arr[j].start >= arr[i].finish) {printf("%d ", j);i = j;}}
}int main() {struct Activity arr[] = {{1, 2}, {3, 4}, {0, 6}, {5, 7}, {8, 9}, {5, 9}};int n = sizeof(arr) / sizeof(arr[0]);// 按照结束时间非降序排列qsort(arr, n, sizeof(arr[0]), compare);activitySelection(arr, n);return 0;
}

在这个例子中,我们首先定义了一个包含开始时间和结束时间的活动结构体,并实现了一个按照结束时间非降序排列的比较函数。然后使用贪心算法来解决活动选择问题,在主函数中定义了一些活动并按照结束时间排序,然后调用activitySelection函数进行活动选择。

http://www.dtcms.com/wzjs/540769.html

相关文章:

  • 代做企业网站建网站盈利
  • 网站建设的公司收费百家号如何给网站做推广
  • 网站二级域名建站属于子站吗宁波网站建设开发公司
  • wordpress订单查询seo实战培训视频
  • 婚纱摄影网站报价注册的空间网站吗
  • 聊城正规网站建设公司电话百度关键词搜索排名
  • 怎么做相亲网站渭南网站建设哪家好
  • 江苏建站系统工业设计网站哪个最
  • 网站的域名从哪里购买河北网站制作公司
  • 考试类网站如何做一般网站建设方案
  • 网站营销策划网站查询地址
  • 有经验的南昌网站设计自己怎么做企业网站
  • 假发外贸网站模板做淘宝客必须要有网站吗
  • 上海高登联合建设网站邯郸如何做企业网站
  • 微网站 pc网站同步如何建设高校网站
  • wordpress大学最新模板下载地址沈阳网站搜索引擎优化
  • 厦门网页建站申请费用app软件定制聚顶科技好
  • 加强和改进校园网站内容建设wordpress站点标题副标题换行
  • 苏州建设网站制作新增备案 网站名字
  • 外贸网站怎么做促销大学生做的网站
  • 网站建设公司天强科技优秀的移动端网站
  • 360怎么变成建设银行首选网站北京软件公司名单
  • 手机微信一体网站建设wordpress 4.8.2 漏洞
  • js获取网站html手机seo快速排名
  • 商务网站建设的组成包括微信下滑小程序怎么关
  • 做自媒体好还是网站好中国十大公司
  • 泰兴城乡建设局网站网站制作的流程
  • 网站建设 php jsp .netseo博客教程
  • PR做视频需要放网站上wordpress段子
  • 优秀的设计网站有哪些网站描述怎么写比较好