All Flashcards
Why must a list be sorted for Binary Search?
Binary search works by repeatedly dividing the search interval in half. This requires knowing whether the target value is in the lower or upper half, which is only possible if the list is sorted.
What is the core idea behind Merge Sort?
Divide the list into smaller sublists, recursively sort the sublists, and then merge them back together in sorted order.
What is the time complexity of Linear Search?
O(n) in the worst case, where n is the number of elements in the list.
What is the time complexity of Binary Search?
O(log n), where n is the number of elements in the list.
What is the time complexity of Insertion Sort?
O(n^2) in the worst and average cases, where n is the number of elements in the list.
What is the time complexity of Selection Sort?
O(n^2) in all cases, where n is the number of elements in the list.
What is the time complexity of Merge Sort?
O(n log n) in all cases, where n is the number of elements in the list.
What is the space complexity tradeoff of Merge Sort?
Merge Sort requires more memory due to the creation of temporary arrays during the merge process.
What is the benefit of using recursion?
Recursion can make code more concise and easier to read for certain problems.
What is a potential drawback of using recursion?
Recursion can lead to stack overflow errors if the base case is not reached or the recursion depth is too large.
What are the general steps of Binary Search?
- Find the middle element. 2. If the target equals the middle, return the index. 3. If the target is less than the middle, search the left half. 4. If the target is greater than the middle, search the right half. 5. Repeat until found or the search space is empty.
What are the steps involved in Merge Sort?
- Divide the list into sublists. 2. Recursively sort each sublist. 3. Merge the sorted sublists.
What are the steps in recursive Insertion Sort?
- Base case: If the index reaches the end of the list, the list is sorted. 2. Take the element at the current index. 3. Shift the element to the left until it's in the correct sorted position. 4. Recursively call the function for the next index.
What are the steps in recursive Selection Sort?
- Base case: If the index reaches the end of the list, the list is sorted. 2. Find the smallest element in the unsorted portion of the list. 3. Swap the smallest element with the element at the current index. 4. Recursively call the function for the next index.
What are the steps in recursive Linear Search?
- Base case 1: If the element at the current index matches the target, return the index. 2. Base case 2: If the current index is the last element and no match is found, return -1. 3. Recursive step: Call the function again with the next index.
What are the steps in iterative Insertion Sort?
- Assume the first element is sorted. 2. Select the next element. 3. Compare to the sorted elements and shift until correct position is found. 4. Insert the element.
What are the steps in iterative Selection Sort?
- Find the minimum element in the unsorted portion. 2. Swap it with the first unsorted element. 3. Repeat for the remaining unsorted portion.
What are the steps in iterative Linear Search?
- Iterate through each element in the array. 2. Compare the current element with the target. 3. If a match is found, return the index. 4. If no match is found after checking all elements, return -1.
What are the steps in iterative Binary Search?
- Initialize left and right pointers. 2. While left <= right, calculate the middle index. 3. If the middle element equals the target, return the index. 4. If the target is less than the middle element, move the right pointer. 5. If the target is greater than the middle element, move the left pointer. 6. If the target is not found, return -1.
How to call the recursiveBinarySearch method?
Call recursiveBinarySearch(array, n, 0, array.size() - 1); where array is the sorted ArrayList, n is the value to search, 0 is the starting index, and array.size() - 1 is the ending index.
How is Binary Search applied in real-world scenarios?
Searching for a word in a dictionary, finding a contact in a sorted phone book, searching for a value in a sorted database index.
How is Merge Sort applied in real-world scenarios?
External sorting of large datasets that don't fit in memory, sorting large files, used in various sorting algorithms in databases.
How is Linear Search applied in real-world scenarios?
Searching for an item in a small, unsorted list, finding a specific file in a directory.
How is Insertion Sort applied in real-world scenarios?
Sorting a hand of playing cards, sorting small datasets, used as a subroutine in more complex sorting algorithms.
How is Selection Sort applied in real-world scenarios?
Although not very efficient, it can be used in scenarios where memory usage is a primary concern due to its in-place sorting nature.
What are real-world applications of recursion?
File system traversal, parsing complex data structures (like XML or JSON), implementing tree-based algorithms, and solving problems that can be broken down into smaller, self-similar subproblems.
How are sorting algorithms used in databases?
Sorting is essential for indexing data, optimizing query performance, and presenting data in a structured manner.
How are searching algorithms used in databases?
Searching algorithms are used to efficiently locate specific records within a database, enabling quick retrieval of information.
How are sorting algorithms used in search engines?
Search engines use sorting algorithms to rank search results based on relevance, ensuring that the most relevant results appear at the top of the page.
How are searching algorithms used in search engines?
Search engines use searching algorithms to quickly locate web pages that match a user's search query.