SearchSearch
Linear & Binary
09/30/15 © Reem Al-Attas 2
Linear Search
• Find 37?
≠ ≠ =
Return 2
09/30/15 © Reem Al-Attas 3
Binary Search
• Find 37?
1. Sort Array.
09/30/15 © Reem Al-Attas 4
Binary Search
2. Calculate middle = (low + high) / 2.
= (0 + 8) / 2 = 4.
If 37 == array[middle]  return middle
Else if 37 < array[middle]  high = middle -1
Else if 37 > array[middle]  low = middle +1
09/30/15 © Reem Al-Attas 5
Binary Search
Repeat 2. Calculate middle = (low + high) / 2.
= (0 + 3) / 2 = 1.
If 37 == array[middle]  return middle
Else if 37 < array[middle]  high = middle -1
Else if 37 > array[middle]  low = middle +1
09/30/15 © Reem Al-Attas 6
Binary Search
Repeat 2. Calculate middle = (low + high) / 2.
= (2 + 3) / 2 = 2.
If 37 == array[middle]  return middle
Else if 37 < array[middle]  high = middle -1
Else if 37 > array[middle]  low = middle +1
09/30/15 © Reem Al-Attas 7
Binary Search
09/30/15 © Reem Al-Attas 8
Binary Search
• If not found  stop when low > high.

Linear Search & Binary Search

  • 1.
  • 2.
    09/30/15 © ReemAl-Attas 2 Linear Search • Find 37? ≠ ≠ = Return 2
  • 3.
    09/30/15 © ReemAl-Attas 3 Binary Search • Find 37? 1. Sort Array.
  • 4.
    09/30/15 © ReemAl-Attas 4 Binary Search 2. Calculate middle = (low + high) / 2. = (0 + 8) / 2 = 4. If 37 == array[middle]  return middle Else if 37 < array[middle]  high = middle -1 Else if 37 > array[middle]  low = middle +1
  • 5.
    09/30/15 © ReemAl-Attas 5 Binary Search Repeat 2. Calculate middle = (low + high) / 2. = (0 + 3) / 2 = 1. If 37 == array[middle]  return middle Else if 37 < array[middle]  high = middle -1 Else if 37 > array[middle]  low = middle +1
  • 6.
    09/30/15 © ReemAl-Attas 6 Binary Search Repeat 2. Calculate middle = (low + high) / 2. = (2 + 3) / 2 = 2. If 37 == array[middle]  return middle Else if 37 < array[middle]  high = middle -1 Else if 37 > array[middle]  low = middle +1
  • 7.
    09/30/15 © ReemAl-Attas 7 Binary Search
  • 8.
    09/30/15 © ReemAl-Attas 8 Binary Search • If not found  stop when low > high.