Searching Algorithms
π Introduction
π Linear Search
def linear_search(arr: list, target) -> int:
"""
Search for target in unsorted array.
Time: O(n)
Space: O(1)
"""
for i, val in enumerate(arr):
if val == target:
return i
return -1
# When to use linear search:
# - Unsorted data
# - Small datasets
# - Single search (not worth sorting first)
# - Linked lists (no random access)β‘ Binary Search
Basic Binary Search
Python's bisect Module
π― Binary Search Variations
Find First Occurrence
Find Last Occurrence
Search Range
Lower and Upper Bound
π Search in Rotated Arrays
Search in Rotated Sorted Array
Find Minimum in Rotated Array
π Search Space Problems
Square Root
Find Peak Element
Search 2D Matrix
Capacity to Ship Packages
Koko Eating Bananas
Split Array Largest Sum
π Other Search Techniques
Ternary Search
Exponential Search
π Practice Exercises
Exercise 1: First Bad Version
Exercise 2: Find Smallest Letter Greater Than Target
Exercise 3: Median of Two Sorted Arrays
π Key Takeaways
π What's Next?
π References
Last updated