# 6.2. SearchingΒΆ

We will now turn our attention to some of the most common problems that arise in computing, those of searching and sorting. In this section we will study searching. We will return to sorting later in the chapter. Searching is the algorithmic process of finding a particular item in a collection of items. A search typically answers either True or False as to whether the item is present. On occasion it may be modified to return where the item is found. For our purposes here, we will simply concern ourselves with the question of membership.

In Python, there is a very easy way to ask whether an item is in a list of items. We use the in operator.

>>> 15 in [3,5,2,4,1]
False
>>> 3 in [3,5,2,4,1]
True
>>>


A similar function can be created for C++ arrays by passing in the array, the size of the array, and the value to search for as arguments.

bool isIn(int alist[], int size, int value) {
for (unsigned i=0; i<size; i++) {
if (alist[i] == value) {
return true;
}
}
return false;
}

int main() {
int arr[] = {3,5,2,4,1};

cout<<isIn(arr, 5, 15)<<endl;
cout<<isIn(arr,5,3)<<endl;

return 0;
}


Even though this is easy to write, an underlying process must be carried out to answer the question. It turns out that there are many different ways to search for the item. What we are interested in here is how these algorithms work and how they compare to one another.

Next Section - 6.3. The Sequential Search