# 01 - Searching Algorithms

1. An algorithm is a list of rules to follow in order to solve a problem. Algorithms need to have _______________

no steps in order for the programmer to have a blank slate

the exact code in the exact language specified at the time of writing

their steps in random order for flexibility

their steps in the right order.

2. Looking for a specific piece of data or information within a ___________ is known as searching

data set

CPU

bit-controlled time frame

128 bit period

3. In a presentation headed by Facebook CEO Mark Zuckerberg, it was announced that the Graph Search algorithm finds information from within a user's network of friends.
`Searching is a relevant topic from social media to data analytics!`

FALSE

TRUE

4. To search for something you need to define what you're looking for (the ______________) and where to look (the data set)

computer itself

search criteria

data set

CPU latency

5. Analyse the code below. What is the data set? And what is the task of the algorithm?

The data set is the number input by the user and the task is to find the number and output it

The list of numbers is the data set and the task is to find a number and return its position

The whole code is the data set and the task is for it to work

None of the above

6. There are different types of searching algorithms. Which two are definitely on the list?

Linear Search, Binary Search

Bubble Sort, Hash Search

None of the above

Cache Search, Merge Sort

7. What is the advantage of coming up with an effective search algorithm?

None of these options are valid

Search algorithms make things easier for a user instead of having to manually look through lots of data to find the information that is being searched for

Search algorithms make the process of looking through data even longer, which elongates the task

There is no obvious advantage, but it is a thing programmers like to do

8. Searching for a ________ or value is the foundation of many computer programs

keyword

ghost

bug

cache cell

9. What is crucial to consider when developing a search algorithm?

The ease of reading of the algorithm

None of the above

The efficiency of the algorithm

The complexity of the code of the algorithm

10. Read the following historical excerpt relating to searching algorithms and efficiency and fill in the blanks.
```Searching Algorithms - importance of efficiency
=======================================
The importance of efficiency with respect to _______ was
emphasised by Ada Lovelace in 1843 as applying to
Charles Babbage's mechanical analytical engine:

"In almost every computation a great variety of arrangements
for the succession of the processes is possible, and various
considerations must influence the selections amongst them for
the purposes of a calculating engine. One essential object is to
choose that arrangement which shall tend to reduce to a minimum
the ________necessary for completing the calculation"```

time

complexity

code

space