Analyzing algorithms
As mentioned previously in this chapter, when we design algorithms, they should meet the following characteristics:
- They are clear and unambiguous.
- They have inputs that are well defined.
- They have outputs that are well defined.
- They have finiteness.
- They are feasible.
- They are language-independent.
In addition to those characteristics, when we are looking at algorithms and analyzing them, we want to make sure we ask ourselves some questions:
- Does the algorithm do what we want?
- Does the output make sense?
- Is there another way to get the same information in a clearer way?
There are many more questions we can ask ourselves when analyzing algorithms, but for now, let's take a look at some algorithmic solutions and analyze them based on the aforementioned characteristics and questions.
Algorithm analysis 1 – States and capitals
A student has created an algorithm that includes a list of US states...