You are on page 1of 2

#include <stdio.

h>
#include <stdlib.h>
#include <conio.h>
int wp[100][2];
int knapsack,jumlah;
void input();
void sortweight();
void sortprofit();
void carigreedy();
main (){
input();
printf("\nGREEDY BY WEIGHT\n");
sortweight();
carigreedy();//MENCARI GREEDY by WEIGHT
printf("------------------------------------------------------\n\n");
printf("GREEDY BY PROFIT\n");
sortprofit();
carigreedy();//mencari GREEDY by PROFIT
getch();
}
void input(){
int a;
printf("masukan kapasitas knapsack= ");scanf("%d",&knapsack);
printf("masukan jumlah data (n) = ");scanf("%d",&jumlah);
for(a=0;a<jumlah;a++){
printf("input weight ke-%d = ",a+1);scanf("%d",&wp[a][0]);
printf("input profit ke-%d = ",a+1);scanf("%d",&wp[a][1]);
}
}
void sortweight(){//fungsi sort descending untuk WEIGHT
int i, j, temp1, temp2;
for(i=0;i<jumlah-1;i++){
for(j=0;j<jumlah-1;j++){
if(wp[j][0]>wp[j+1][0]){
temp1=wp[j][0];
wp[j][0]=wp[j+1][0];
wp[j+1][0]=temp1;
temp2=wp[j][1];
wp[j][1]=wp[j+1][1];
wp[j+1][1]=temp2;
}
}
}printf("weight || profit\n");
for(i=0;i<jumlah;i++){
printf(" %d
||
%d\n",wp[i][0],wp[i][1]);
}
}
void sortprofit(){//fungsi sort descending untuk PROFIT
int i, j, temp1, temp2;
for(i=0;i<jumlah-1;i++){
for(j=0;j<jumlah-1;j++){
if(wp[j][1]<wp[j+1][1]){
temp1=wp[j][1];
wp[j][1]=wp[j+1][1];

wp[j+1][1]=temp1;
temp2=wp[j][0];
wp[j][0]=wp[j+1][0];
wp[j+1][0]=temp2;
}
}
}printf("weight || profit\n");
for(i=0;i<jumlah;i++){
printf(" %d
||
%d\n",wp[i][0],wp[i][1]);
}
}
void carigreedy(){//fungsi mencari bobot dan profit
int bobot, i=0, profit=0;
bobot=knapsack;
while(0<=bobot-wp[i][0]){
bobot=bobot-wp[i][0];
profit=profit+wp[i][1];
i++;
}
bobot=knapsack-bobot;
printf("Total BOBOT = %d ",bobot);
printf("Total PROFIT = %d\n\n\n",profit);
}

You might also like