All Flashcards
What is the definition of Recursion?
A method of solving a problem where the solution depends on solutions to smaller instances of the same problem. A function calls itself with a smaller version of the original problem.
What is the definition of Base Case?
A condition in a recursive method that terminates the recursive calls and provides a direct solution.
What is the definition of Recursive Call?
When a function calls itself with a modified version of the original problem, usually after checking the base case.
What is the definition of Binary Search?
A search algorithm that finds the position of a target value within a sorted array by repeatedly dividing the search interval in half.
What is the definition of Merge Sort?
An efficient, general-purpose, comparison-based sorting algorithm that divides an array into two halves, sorts each half, and then merges the sorted halves back together.
What are the general steps for writing a recursive function?
- Identify the base case(s). 2. Define the recursive call to solve a smaller subproblem. 3. Ensure the recursive call moves towards the base case.
What are the steps of the binary search algorithm?
- Find the middle element. 2. Compare the target to the middle element. 3. If target equals middle, return index. 4. If target is less than middle, search the left half. 5. If target is greater than middle, search the right half. 6. Repeat until found or search space is empty.
What are the main steps of the merge sort algorithm?
- Divide the array into two halves. 2. Recursively sort the two halves. 3. Merge the sorted halves.
How is recursion applied in real-world scenarios?
In algorithms like tree traversal, graph searching, and in compilers for parsing code.
How is binary search applied in real-world scenarios?
Searching for a word in a dictionary, finding a contact in a sorted list, or locating data in a sorted database index.
How is merge sort applied in real-world scenarios?
Used in external sorting (sorting large datasets that don't fit in memory), and as a building block in other algorithms.