Bird
Raised Fist0
Intro to Computingfundamentals~5 mins

Searching algorithms (linear, binary) in Intro to Computing - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a linear search algorithm?
Linear search is a method of finding a target value by checking each element in a list one by one from start to end until the target is found or the list ends.
Click to reveal answer
beginner
What condition must be true for binary search to work?
The list must be sorted in order (either ascending or descending) before performing a binary search.
Click to reveal answer
intermediate
How does binary search reduce the search area?
Binary search compares the target with the middle element of the list. If the target is smaller, it searches the left half; if larger, it searches the right half. This halves the search area each time.
Click to reveal answer
beginner
Which search algorithm is faster for large sorted lists: linear or binary search?
Binary search is faster for large sorted lists because it reduces the search area by half each step, while linear search checks elements one by one.
Click to reveal answer
intermediate
Explain the worst-case time complexity of linear and binary search.
Linear search worst-case time is O(n), meaning it may check every element. Binary search worst-case time is O(log n), meaning it divides the search area repeatedly, making it much faster on large lists.
Click to reveal answer
Which search algorithm requires the list to be sorted?
ANeither linear nor binary search
BLinear search
CBinary search
DBoth linear and binary search
In linear search, what happens if the target is not in the list?
AThe algorithm stops immediately
BThe algorithm stops after checking half the elements
CThe algorithm sorts the list first
DThe algorithm stops after checking all elements
What is the main advantage of binary search over linear search?
AIt works on unsorted lists
BIt is faster on large sorted lists
CIt uses less memory
DIt is easier to implement
If a list has 16 elements, how many steps does binary search take in the worst case?
A4 steps
B8 steps
C16 steps
D1 step
Which search algorithm checks elements one by one?
ALinear search
BBinary search
CBoth
DNone
Describe how linear search works using a real-life example.
Think about looking for a book on a messy shelf.
You got /3 concepts.
    Explain the steps of binary search and why the list must be sorted.
    Imagine searching for a word in a dictionary.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which of the following is true about linear search?
      easy
      A. It checks each item one by one until it finds the target.
      B. It requires the list to be sorted before searching.
      C. It splits the list into halves to find the target quickly.
      D. It only works on numbers, not text.

      Solution

      1. Step 1: Understand linear search method

        Linear search goes through each item in the list one by one to find the target.
      2. Step 2: Compare with other search methods

        Binary search splits the list and requires sorting, but linear search does not.
      3. Final Answer:

        It checks each item one by one until it finds the target. -> Option A
      4. Quick Check:

        Linear search = check items one by one [OK]
      Hint: Linear search checks items one by one [OK]
      Common Mistakes:
      • Thinking linear search needs sorted list
      • Confusing linear search with binary search
      • Believing linear search only works on numbers
      2. Which of the following is the correct syntax for a linear search loop in Python to find target in arr?
      easy
      A. for i in arr: if i == target return True
      B. for i in range(len(arr)): if arr[i] = target: return True
      C. while i < len(arr): if arr[i] == target return True
      D. for i in arr: if i == target: return True

      Solution

      1. Step 1: Check correct loop syntax

        for i in arr: if i == target: return True uses a for loop to iterate over each element in arr correctly.
      2. Step 2: Verify condition and syntax

        for i in arr: if i == target: return True uses '==' for comparison and proper indentation, which is correct.
      3. Final Answer:

        for i in arr: if i == target: return True -> Option D
      4. Quick Check:

        Correct for loop and comparison syntax [OK]
      Hint: Use '==' for comparison and proper indentation [OK]
      Common Mistakes:
      • Using single '=' instead of '==' for comparison
      • Missing colon ':' after if statement
      • Incorrect indentation causing syntax errors
      3. What will be the output of the following Python code?
      def binary_search(arr, target):
          low, high = 0, len(arr) - 1
          while low <= high:
              mid = (low + high) // 2
              if arr[mid] == target:
                  return mid
              elif arr[mid] < target:
                  low = mid + 1
              else:
                  high = mid - 1
          return -1
      
      arr = [2, 4, 6, 8, 10]
      print(binary_search(arr, 6))
      medium
      A. -1
      B. 1
      C. 2
      D. 3

      Solution

      1. Step 1: Understand binary search on sorted list

        The list is sorted: [2, 4, 6, 8, 10]. Target is 6.
      2. Step 2: Trace the binary search steps

        Initial low=0, high=4, mid=2. arr[2]=6 matches target, so return 2.
      3. Final Answer:

        2 -> Option C
      4. Quick Check:

        Index of 6 in list = 2 [OK]
      Hint: Binary search returns index of target if found [OK]
      Common Mistakes:
      • Not using zero-based index
      • Confusing mid calculation
      • Assuming binary search works on unsorted lists
      4. The following code is intended to perform a binary search but has an error. What is the error?
      def binary_search(arr, target):
          low, high = 0, len(arr)
          while low <= high:
              mid = (low + high) // 2
              if arr[mid] == target:
                  return mid
              elif arr[mid] < target:
                  low = mid + 1
              else:
                  high = mid - 1
          return -1
      medium
      A. The mid calculation should use float division.
      B. The high index should be len(arr) - 1, not len(arr).
      C. The loop condition should be low < high, not low <= high.
      D. The function should return True instead of index.

      Solution

      1. Step 1: Check initialization of high index

        High is set to len(arr), which is out of valid index range (0 to len(arr)-1).
      2. Step 2: Understand index range in Python lists

        List indices go from 0 to len(arr)-1, so high must be len(arr)-1 to avoid index error.
      3. Final Answer:

        The high index should be len(arr) - 1, not len(arr). -> Option B
      4. Quick Check:

        High index = len(arr) - 1 [OK]
      Hint: High index must be last valid index (len-1) [OK]
      Common Mistakes:
      • Setting high to len(arr) causes index out of range
      • Using float division for mid index
      • Wrong loop condition causing infinite loop
      5. You have a sorted list of 1024 numbers. You want to find if the number 500 is in the list. Which search method is faster and why?
      hard
      A. Binary search, because it splits the list and reduces search steps quickly.
      B. Binary search, but only if the list is unsorted.
      C. Linear search, because it works only on sorted lists.
      D. Linear search, because it checks each item one by one.

      Solution

      1. Step 1: Identify list size and sorting

        The list has 1024 numbers and is sorted, which suits binary search.
      2. Step 2: Compare search methods speed

        Binary search halves the search space each step, so it finds the target in about 10 steps (log2(1024) = 10), much faster than linear search.
      3. Final Answer:

        Binary search, because it splits the list and reduces search steps quickly. -> Option A
      4. Quick Check:

        Binary search faster on sorted large lists [OK]
      Hint: Use binary search on sorted big lists for speed [OK]
      Common Mistakes:
      • Choosing linear search for large sorted lists
      • Thinking binary search works on unsorted lists
      • Ignoring the list size impact on search speed