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...