Esse código se trata da resolução de um problema proposto na disciplina de Algoritmos e Estruturas de dados do curso de Engenharia de Computação no CEFET-MG. Eu resolvi coloca-lo em público pois é de grande importância o conceito para resolução desse problema pois é muito aplicavel, principalmente, na área de desenvolvimento de jogos.
Imagine o seguinte. Você está desenvolvendo um jogo de RPG e, na maioria das vezes, o seu personagem precisa possuir um inventário. Em alguns casos, esse inventário possui um número máximo de itens, em outros, esse inventário possui um peso máximo a ser carregado (Mais realista). Vamos supor que nosso personagem abre um baú, porém, os inventário está quase cheio quanto ao peso, mas precisamos maximizar o valor carregado (Assim temos mais ouro, sendo capazes de comprar equipamentos melhores). Para isso devemos implementar uma funcionalidade que escolha automaticamente, os itens com o maior valo que cabem em nossa mochila. Os algoritmos implementado aqui na linguagem C servem de base para o desenvolvimento de tal solução
Devemos criar uma solução para o seguinte problema: Temos uma coleção de itens total (C) e uma mochila (M) que carrega um peso máximo (P). Sendo assim, precisamos de um código que selecione os itens da coleção de forma a máximizar o valor contido.