Searching algorithms: linear and binary search

遊んで学ぼう

問題に答えてエネルギーを集めたら、釣りや探検を楽しもう。アカウント不要。

教育者の方へ: Searching algorithms: linear and binary search(KS3 Computing、Computer Science)向けのすぐ使えるレッスンスライド, 復習ノート — レッスンで使うか、学習者がライブゲームとして遊ぶインタラクティブなクラス活動としてトピックを実施できます。

レッスンノート

Introduction to Search Algorithms

  • A search algorithm finds the position of a target value within a list of items.
  • Two common search algorithms are linear search and binary search.
  • Linear search checks each item in order until the target is found or the list ends.
  • Binary search repeatedly divides a sorted list in half to locate the target.
  • The choice of algorithm affects speed and efficiency, especially with large data sets.

Linear Search

  • Linear search starts at the first element and compares each element with the target.
  • It works on unsorted or sorted lists.
  • In the worst case, it checks every element, so it takes n comparisons for a list of n items.
  • Its time complexity is O(n) – linear time.
  • It is simple to implement but slow for large lists.
  • Best used when the list is small or unsorted.

Binary Search

  • Binary search requires the list to be sorted in ascending order.
  • It compares the target with the middle element of the list.
  • If the target is less than the middle, the search continues in the left half; if greater, in the right half.
  • This process repeats, halving the search area each time.
  • If the search area becomes empty, the target is not present.
  • It runs in O(log n) time – logarithmic time.
  • For a list of 1,000,000 items, binary search needs at most about 20 comparisons, while linear search may need up to 1,000,000.

Binary Search Step-by-Step

  • Set low to 0 and high to n-1 (the first and last indices).
  • While low ≤ high, calculate mid = (low + high) / 2 (rounded down).
  • If the middle element equals the target, return mid.
  • If the middle element is less than the target, set low = mid + 1.
  • If the middle element is greater than the target, set high = mid - 1.
  • If low > high, the target is not found.

Comparing Efficiency

  • Linear search time grows proportionally with list size (O(n)).
  • Binary search time grows logarithmically (O(log n)).
  • For small lists, linear search may be faster due to less overhead.
  • For large sorted lists, binary search is dramatically faster.
  • Binary search requires the list to be sorted, which adds an initial cost if not already sorted.

When to Use Each Algorithm

  • Use linear search when the list is unsorted or small.
  • Use linear search when you need to find all occurrences of a value.
  • Use binary search when the list is sorted and large.
  • Use binary search when you need the fastest search time.
  • If the list is frequently updated, sorting overhead may make linear search more practical.

Key Terms

  • Array – a collection of items stored at contiguous memory locations.
  • Sorted – arranged in ascending or descending order.
  • Target – the value being searched for.
  • Index – the position of an element in an array (starting at 0).
  • Time complexity – a measure of how the running time grows with input size.
  • O(n) – linear time; O(log n) – logarithmic time.

Common Mistakes

  • Forgetting to sort the list before using binary search.
  • Using mid = (low + high) / 2 without rounding down (integer division).
  • Not updating low or high correctly, causing infinite loops.
  • Assuming binary search works on unsorted data.
  • Confusing index with value when comparing.

スライド

Sign up free to view the lesson slides

Step through every slide for this topic — plus flashcards and revision notes — with a free account.

練習問題

無料プレビュー — 59問中8問。すべて見るには登録を。
  1. 1.What is the main requirement for binary search to work correctly?

    Easy
    • AThe data must be sorted
    • BThe data must be unsorted
    • CThe data must be stored in a hash table
    • DThe data must be small
  2. 2.Linear search requires the data to be sorted.

    Easy

    True or false?

  3. 3.Which search algorithm is generally faster on a large sorted list?

    Easy
    • ABinary search
    • BLinear search
    • CBoth are equally fast
    • DIt depends on the programming language
  4. 4.Arrange the steps of a binary search on a sorted array in the correct order:

    Easy
    • Compare the target with the middle element.
    • If the target is less than the middle, search the lower half.
    • If the target is greater than the middle, search the upper half.
    • If the target equals the middle, return its position.
  5. 5.Which of the following are true about linear search? (Select all that apply)

    Easy
    • AIt checks each element in order.
    • BIt requires the data to be sorted.
    • CIt works on unsorted data.
    • DIt is usually slower than binary search on large lists.
    • EIt always starts from the middle of the list.
  6. 6.Given the sorted list [2, 5, 8, 12, 16, 23, 38], what is the first element compared to when searching for 23 using binary search?

    Medium
    • A12
    • B16
    • C23
    • D38
  7. 7.In binary search, after comparing the target to the middle element and finding it is greater, what happens next?

    Medium
    • AThe lower half is eliminated and the search continues in the upper half.
    • BThe upper half is eliminated and the search continues in the lower half.
    • CThe search stops immediately.
    • DThe entire list is searched again.
  8. 8.Binary search can be used on an unsorted list if you first sort it.

    Easy

    True or false?

Unlock all 59 questions, flashcards & more

無料アカウントを作って、このトピックのすべての問題・スライド・フラッシュカード・復習ノートを見よう。

過去問

このトピックの過去問練習は近日公開。
近日公開