Search

A Search Algorithm finds something

What is a Search Algorithm?🧐

A Search Algorithm finds something.

🐌Linear Search is an algorithm which looks at each item one by one in unordered list until the item is found.

  • Looking for scissors in the junk drawer✂ī¸

  • Matching a single sock to the pair in a pile of laundry đŸ§Ļ

  • Checking out the old photo album with grandma đŸ‘ĩ

🚀Binary Search is an algorithm which continually splits an ordered list in half until the item is found.

  • Finding a specific page number in a book 📖

    • A person would look like so to find a specific page number

    • 500, 600, 580, 581, 582

    • Not like this

    • 1,2,3,4,5,6,7,8,9,10,11...582

  • Searching for an old holiday photo in a phone🎄

    • Search by year

    • Search by month

    • Search by day

🐌Linear Search vs🚀Binary Search in a heads up comparison on the same list.

Array:
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

Goal:
Find the number 14

Linear Search:
1,2,3,4,5,6,7,8,9,10,11,12,13,14

Binary Search:
10,15,14

🌧ī¸BFS: Breadth First Search algorithm Flows in every direction evenly to find the item. In a tree data structure for example it would search for the item in all the nodes by each level(floor). Dropping one level & then explore all nodes, dropping one level then explore all nodes, etc..

  • Tree branches growing out

  • Root system expanding out

🌩ī¸DFS: Depth First Search algorithm Strikes each direction one by one to find the item. In a tree data structure for example it would search for the item by exploring a branch all the way to the bottom of a tree then trying a different branch all the way to the bottom.

  • Lightning strikes

Example Tree

        A Tree Data Structure
                Start
                  '
         -------------------
        '                   '
        *                   *
        '                   '
   ----------          ----------
  '          '        '          '
  *          *        *          *
  '          '        '          '
 ---        ---      ---        ---        
'   '      '   '    '   '      '   '
*   *      *   *    *   *      *   *

BFS Example: first 8 nodes found

        Breadth First Search
                  1
                  '
         -------------------
        '                   '
        2                   3
        '                   '
   ----------          ----------
  '          '        '          '
  4          5        6          7
  '          '        '          '
 ---        ---      ---        ---        
'   '      '   '    '   '      '   '
8   *      *   *    *   *      *   *

DFS Example: first 4 nodes found

          Depth First Search
                  1
                  '
         -------------------
        '                   '
        2                   *
        '                   '
   ----------          ----------
  '          '        '          '
  3          *        *          *
  '          '        '          '
 ---        ---      ---        ---        
'   '      '   '    '   '      '   '
4   *      *   *    *   *      *   *

Last updated