11.1 Classical searching
In coding, “searching” is attempting to find a specific object in a collection. In Python, the collection is often a list, though it could be a NumPy array, as we shall see in section 13.1.7. The object may or may not be in the collection.
Python sets and dictionaries are optimized for search, so we focus on collections with less secondary structure for locating objects. In particular, we look at lists.
Let numbers
be a list of 16 unique integers between 1
and
50
in random order.
numbers = [4, 46, 40, 15, 50, 34, 32, 20, 24, 30, 22, 49, 36, 16, 5, 2]
numbers
[4, 46, 40, 15, 50, 34, 32, 20, 24, 30, 22, 49, 36, 16, 5, 2]
The first value in the list is 4
, so it does not take long to find it if we
start searching from the beginning. On the other hand, 2
is the last list item, so
we need to check every member of the list to confirm its presence. This is a linear...