As we can see from Tables 3 through 7, the maximum number of items we could run the
branch and bound algorithm was 750. Therefore, although its complexity grows
exponentially like the brute force algorithm, branch and bound executes for a lot greater
inputs. Moreover, we can conclude that the dynamic programming, branch and bound,
and genetic algorithms outperform the greedy algorithm in terms of the total value it
generates. We decided to further analyze the dynamic programming, branch and bound,
and genetics algorithms in terms of the number of basic operations (Fig. 2) and memory