Computers are often used to store large amounts of data. Of course, this data doesn't do anyone any good if it is inaccessible. To make this data usable, programs and users need to be able to organize the data and look up information that resides in it. One process for organizing data is called sorting. The process of looking up certain data from the larger set is called searching. This guide will cover the topic of searching, and different algorithms that have been devised to search efficiently.

Searching is one of the most fundamental problems in computer science. Brilliant minds have spent years of their lives coming up with better ways to search. Why? The capability to search accurately and efficiently enables programmers to write better code and to create better applications.

Before we can begin talking about searching algorithms, we will briefly discuss what it means for an algorithm to run efficiently, and will discuss a method for comparing the efficiency of two algorithms. With these tools in hand, we can move on to the reason you are probably reading this SparkNote, to learn about different searching algorithms, from the simplest linear searches up through much more complex search structures such as hash tables.