当前位置:首页 » 编程语言 » 贪心算法c语言

贪心算法c语言

发布时间: 2025-03-17 00:57:41

c语言 贪心算法 小朋友分组 急急急急急急急 立刻!!!!!!!

int fun(int *a, int n, int MinC, int MaxC)
{
int pmin, pmax, smin, smax, i;
pmin = pmax = smin = smax = 0;
for(i=0; i<n; i++)
{
if(a[i] < MinC)pmin += (MinC - a[i]);
if(a[i] > MaxC)pmax += (a[i] - MaxC);
smin += (a[i] - MinC);
smax += (a[i] - MaxC);
}
if(pmin == pmax)return pmin;
if(pmin > pmax && smin > 0)return pmin;
if(pmax > pmin && smax < 0)return pmax;
return -1;
}
void main()
{
int a[] = {20,8,6};
printf("%d %d %d",fun(a,3,10,15),
fun(a,3,5,20),fun(a,3,1,2));
}

看一下fun函数行不行

㈡ C语言 贪心算法求背包问题

是你的冒泡排序出了问题~

你吧 原来的1-2-3号按照东西的价值重新排列现在的1-2-3对应原来的2-1-3了
所以 你输出的时候是按 1-2-3输出的话 就等于第一个是原来的X2 第二个是X1第三个是X3
而且你的冒泡排序用错了 只比较了 P[0]/K[0]和P[1]/K[1] P[1]/K[1]和P[2]/K[2]
周一我去学校帮你重新改改 我家的机器没有C++
周一晚上我会上传答案~我最近正好也要做算法的作业~
#include <stdio.h>
#include <math.h>
#define N 50

float find(float p[N],float w[N],float x[N] ,float M,int n) /*先放单位价值量大的物体,再考虑小的物体*/
{
int i;
float maxprice;
for (i = 0; i < n; i++)
x[i] = 0;
i = 0;
maxprice=0;
while (i < n && w[i] < M)
{
M=M-w[i];
x[i] =w[i]; /* 表示放入数量 */
maxprice=maxprice+p[i];
x[n-1]=M;
i++;
}
if (i < n &&M> 0)
{
maxprice=maxprice+p[i]*x[i]/w[i];
i++;
}
return maxprice;
}

int main()
{
int n,flag=1;
float temp,M,w[N],p[N],x[N];
int a[N],b[N];
int k,j,l=0;
printf(

热点内容
android向上滑动 发布:2025-07-18 01:04:48 浏览:40
atom编译器utf8 发布:2025-07-18 01:03:50 浏览:838
android对应ndk 发布:2025-07-18 00:53:46 浏览:217
sm4算法使用 发布:2025-07-18 00:53:42 浏览:816
oracle同步mysql数据库 发布:2025-07-18 00:42:27 浏览:191
go语言编译其他平台 发布:2025-07-18 00:42:23 浏览:280
二叉树非递归先序遍历算法 发布:2025-07-18 00:39:45 浏览:356
压缩热泵循环 发布:2025-07-18 00:38:04 浏览:888
安卓自动升级在哪里关掉 发布:2025-07-18 00:36:37 浏览:360
键盘按f9键不可以编译怎么调 发布:2025-07-18 00:11:34 浏览:312