Search procedures are part of the most used operations when dealing with electronic devices and data. They are omnipresent, easy to understand and have a significant overall speed impact.

They are thereby a great introduction to algorithmic thinking : if you can handle arrays, you can handle search algorithms.

For each algorithm, we may consult illustrated descriptions, complexity demonstrations and download the source code used. We can also play with the visualizations to understand them in a snap.

We will learn how to implement powerful searching algorithms. We will for instance be capable of:

  • Find a person within a phone book of 1 million contacts in only 20 operations.
  • Find the most significant elements in random data.
  • Determine which git commit caused a bug in your code.

We will also start covering programming concept such as complexity, divide and conquer strategy, partition method..

What is next?

You may read more about data structures or jump to the sorting algorithms section to go further.