Explore recursion and investigate sorting algorithms.
| (a) |
Distinguish between iterative and recursive problem-solving techniques and demonstrate how to accomplish a specific task using both approaches. |
| (b) |
Create recursive functions and use them in programs to solve problems such as calculating factorials, evaluating exponents, designing fractal images or calculating the Fibonacci sequence. |
| (c) |
Discuss the processes (e.g., the stack, stack frames and maximum recursion depth) involved in evaluating recursive functions. |
| (d) |
Identity the advantages and disadvantages of using recursive problems. |
| (e) |
Provide examples of situations where sorting is used to solve problems. |
| (f) |
Discuss the importance of efficiency in sorting algorithms. |
| (g) |
Analyze the execution of insertion, selection and quicksort algorithms using visualizations. |
| (h) |
Illustrate the implementation of a sorting algorithm (e.g., selection, insertion, and quicksort) using pseudocode. |
| (i) |
Create a program to sort data in an array using one or more sorting algorithms (e.g., selection, insertion, quicksort). |
