Nowadays we store a huge amount of digital data. It is essential that computers can process the data and find the information we need quickly. For example, we may want to find a word in a document with hundreds of pages, or search the Internet. We expect the computer to give us the result instantaneously.

Searching is the algorithmic process of finding a particular information in a collection of data. We should choose the appropriate ways to store data so that the computers can sift through data and get the information efficiently.

Suppose you have a collection of Pokemon cards and you want to store their information in a data structure so that you can quickly check whether a card is in your collection. How would you do it?