с жадным подходом
Структуры данных и анализ алгоритмов
Задача о рюкзаке на языке C
//gautam007.medium.com
#include‹stdio.h›
int count=0;
int val[20], wt[20];
int max(int a[], int n){
int m=0;
count++;
count++;
for(int i=0; i‹n; i++){
count++;
if(a[i] › m){
count++;
count++;
m=a[i];
val[i]=0;
}
count++; count++;
}
return m;
}
int knapSack(int W, int wt[], int val[], int n){
int pro= 0;
count++;
if(!W‹=0){
count++;
count++;
pro=pro+max(val,n);
}
count++;
return pro;
}
void main(){
int i, n, W;
printf("Жадный подход: задача Knapscak ››\n\n");
printf("Введите число значений: ");
scanf("%d",&n);
printf("Введите грузоподъемность: ");
scanf("%d",&W );
printf("\n\nВведите прибыль и вес соответственно:\n");
for(i=0;i‹n;i++){
printf( "\nВесовая пара %d\n",1+i);
printf("Прибыль: ");
scanf("%d",&val[i]);
printf ("Вес: ");
scanf("%d",&wt[i]);
}
count++;
printf("\n\nВсего Прибыль: %d", knapSack(W, wt, val, n));
printf("\nНеобходимые шаги: %d", количество);
}