Design Techniques - divide and conquer, dynamic programming, greedy algorithms, backtracking, branch and bound - Online Test
30:00
1. Which design technique involves breaking down a problem into smaller, independent subproblems of the same type, solving them recursively, and then combining their solutions?
2. In the context of Divide and Conquer, what is the primary goal of the 'combine' step?
3. Which algorithm design paradigm is characterized by making the locally optimal choice at each stage with the hope of finding a global optimum?
4. Dynamic Programming is most effective when a problem exhibits which two properties?
5. What is the term for storing the results of expensive function calls and returning the cached result when the same inputs occur again, often used in Dynamic Programming?
6. Which technique explores all possible solutions by incrementally building candidates and abandoning a candidate ('pruning') as soon as it is determined that it cannot possibly lead to a valid solution?
7. Which of the following is a classic example of a problem solved efficiently using the Divide and Conquer technique?
8. The algorithm for finding the shortest path in a graph with non-negative edge weights, like Dijkstra's algorithm, is a prime example of which design technique?
9. Which technique is often described as a form of depth-first search in the state space tree?
10. When using Dynamic Programming, building the solution from the smallest subproblems up to the original problem is known as:
Test Results
0/0