Recursive Equation
An equation that defines a problem in terms of smaller instances of the same problem.
0-1 Knapsack Problem
A problem where objects with certain weights and profits need to be selected to maximize the total profit, while keeping the total weight within a given limit.
Brute Force Method
A method that considers all possible combinations of objects to find the optimal solution.
Time Complexity
The measure of the amount of time an algorithm takes to run, often expressed in terms of the input size.
Dynamic Programming
An approach to problem-solving that breaks down a problem into smaller overlapping subproblems and solves them in a bottom-up manner to avoid redundant calculations.
Termination Condition
A condition that determines when a recursive function should stop and return a result.
Recursion Tree
A visual representation of the recursive calls made in a recursive algorithm, showing the hierarchy of function calls and their relationships.
Optimal Result
The best possible solution or output for a given problem.
Table
A data structure used in dynamic programming to store the values of subproblems for efficient retrieval.
Table Size
The dimensions of the table used in dynamic programming, determined by the number of objects and the total weight of the knapsack.
Time Complexity Analysis
The process of determining the time complexity of an algorithm, often by analyzing the number of operations performed as a function of the input size.
Space Complexity
The measure of the amount of memory an algorithm requires to run, often expressed in terms of the input size.
Benefits of Dynamic Programming
The advantages of using dynamic programming, such as improved time efficiency and avoiding redundant calculations.