Summary
In this chapter, we have discussed real-life applications of algorithms. We can solve a coin-change problem using the greedy algorithm. We can improve matrix multiplication time performance using the divide-and-conquer algorithm.
By using dynamic programming, we can improve the time complexity of Fibonacci number by removing the recursion. Also, we can see that selection sort and bubble sort, which we had discussed in a previous chapter, are brute-force algorithms.
Also, we have found that using a randomized algorithm could help in a situation of doubt, such as flipping a coin or drawing a card frоm a deck іn оrdеr tо make a dесіѕіоn.
Finally, we used a backtracking algorithm to arrange furniture in a new house or to play a tic-tac-toe.