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

网站怎么做下载网页代码吗关键词英文

网站怎么做下载网页代码吗,关键词英文,荆州网站建设荆州,网站建设调查通知贪心算法(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/329889.html

相关文章:

  • 做电商网站报价谷歌seo是指什么意思
  • 新疆交通建设管理局官方网站蒙牛牛奶推广软文
  • 新网站怎么做才会被收录北京百度推广客服电话多少
  • 学生如何做网站网站seo方案案例
  • 注册域名的官方网站济南头条新闻热点
  • wordpress自动采集图片seo外包是什么
  • 营销网站建设整合网站营销专家搜索引擎入口官网
  • 兴义市住房和城乡建设局网站seo矩阵培训
  • 网站建设设计780元全包搜狐新闻手机网
  • 有什么软件做短视频网站网站注册账号
  • 绍兴做网站哪家好千锋教育北京校区
  • Python做网站 性能常见的网络推广方式包括
  • 财务公司加盟哪个比较好东莞seo管理
  • 商务网站建设用的是什么软件怎么制作微信小程序
  • 重庆响应式网站建设找哪家长春头条新闻今天
  • 做网站有什么类型怎么引流客源最好的方法
  • 网站建设公司做网站要多少费用创建自己的网站怎么弄
  • 山东政府网站集约化建设seo的优化步骤
  • 莱芜网站推广重庆关键词seo排名
  • 工程建设招标网都有哪些网站网页设计和网站制作
  • 那个网站做创意图比较好优化大师win7官方免费下载
  • 网上接单做衣服哪个网站青岛做网站推广公司
  • 个人网站做导航网站推广平台排行榜
  • 常州网站建设费用网络营销与管理
  • 访问国外网站dns国外网站推广
  • 怎样去同行网站做外连接手机注册网站
  • 淘客网站开发视频教程网络营销的概念及特征
  • 网站宣传营销网络服务商主要包括
  • 网站seo属于什么专业查询网站域名
  • 个人做网站要注意什么条件网络营销的特点是什么?