news 2026/6/6 20:03:59

贪心算法-背包问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
贪心算法-背包问题
#include<stdio.h> #define N 5 //物品数量(总类) #define W 100 //容量 int v_temp[N+1], w_temp[N+1]; // 物品价值数组,物品容量数组 double vw_temp[N+1];//单位物品价值容量数组 double answer[N+1] = {0};//解方案数组 void show(int v[],int w[],double vw[]) { int i; for(i = 1;i<=N;i++){ printf("%d ",v[i]); } printf("\n"); for(i = 1;i<=N;i++){ printf("%d ",w[i]); } printf("\n"); for(i = 1;i<=N;i++){ printf("%.1f ",vw[i]); } printf("\n"); } void merge_sort(int v[],int w[],double vw[],int l,int r) { if(l>=r) { return ; } int mid = (l+r)/2; merge_sort(v,w,vw,l,mid); merge_sort(v,w,vw,mid+1,r); int i = l,j = mid+1,k = 1; while(i<=mid && j<=r) { if(vw[i] > vw[j]) { vw_temp[k] = vw[i]; v_temp[k] = v[i]; w_temp[k] = w[i]; k++,i++; } else { vw_temp[k] = vw[j]; v_temp[k] = v[j]; w_temp[k] = w[j]; k++,j++; } } while(i<=mid) { vw_temp[k] = vw[i]; v_temp[k] = v[i]; w_temp[k] = w[i]; k++,i++; } while(j<=r) { vw_temp[k] = vw[j]; v_temp[k] = v[j]; w_temp[k] = w[j]; k++,j++; } for(i = l,j= 1;i<=r;i++,j++) { vw[i] = vw_temp[j]; v[i] = v_temp[j]; w[i] = w_temp[j]; } } double max_value(int v[],int w[],double vw[]) { double result = 0.0; int i,w_temp = W; for(i = 1;i<=N;i++) { if(w_temp>w[i]) { answer[i] = 1; result = result+v[i]; w_temp = w_temp-w[i]; } else { break; } } if(w_temp>0 && i<=N) { answer[i] = (double)w_temp/w[i]; result = result + w_temp*vw[i]; } return result; } int main() { int v[] = {0,20,65,30,40,60};//物品价值数组 int w[] = {0,10,30,20,40,50};//物品容量数组 double vw[N+1] = {0}; int i; for(i = 1;i<=N;i++) { vw[i] = (double)v[i]/w[i]; } printf("排序前\n"); show(v,w,vw); printf("排序后\n"); merge_sort(v,w,vw,1,N);//归并排序 show(v,w,vw); double result = max_value(v,w,vw); printf("result = %.1f\n",result); printf("解方案结果为:\n"); for(i = 1;i<=N;i++) { printf("%.1f ",answer[i]); } return 0; }

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 19:53:03

牙齿美白为什么开始从“浓度驱动”转向“活性驱动”?

在牙齿美白的发展历程中&#xff0c;过氧化氢&#xff08;HP&#xff09;长期占据核心地位&#xff0c;行业曾形成一个根深蒂固的共识&#xff1a;过氧化氢浓度越高&#xff0c;美白效果越好。这种“浓度驱动”逻辑主导市场多年&#xff0c;但随着消费者对口腔健康与体验的要求…

作者头像 李华
网站建设 2026/6/6 19:48:49

MCprep终极指南:让Minecraft动画制作变得简单快速

MCprep终极指南&#xff1a;让Minecraft动画制作变得简单快速 【免费下载链接】MCprep Blender python addon to increase workflow for creating minecraft renders and animations 项目地址: https://gitcode.com/gh_mirrors/mc/MCprep 在追求完美的Minecraft动画制作…

作者头像 李华
网站建设 2026/6/6 19:48:47

MATLAB内点法无功优化代码包:含IEEE14节点完整算例与逐行中文注释

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;一套开箱即用的MATLAB无功优化实现&#xff0c;采用跟踪中心轨迹的内点法求解最优潮流问题。程序主体为opflatestedition.m&#xff0c;已通过IEEE14节点系统全面测试&#xff0c;能准确处理节点电压幅值上下限…

作者头像 李华