- Given a set of numbers (i.e 5,9,7,2,1,5) return how many numbers are divisible by 3.
For the above set of numbers the answer is 1. One could easily write a function that would give this output:
for input(a,b,c,d....) output(1)
This would provide the correct output for the example set of data but not all possible sets of data - it is not an algorithmic solution. An algorithmic solution is one which will provide the correct output for any legal input. The pseudo-code below would be an example of an algorithmic solution for this problem.
(1) create variable a
(2) for - number of numbers in the set
if - current number is divisible by 3
add one to variable a
(3) return a
This code would produce the correct output for this algorithmic problem regardless of what the input is as long as it is a legal input (a set of numbers). It does not matter if the set is 5 numbers or a million - the correct result will be returned.
for input(a,b,c,d....) output(1)
This would provide the correct output for the example set of data but not all possible sets of data - it is not an algorithmic solution. An algorithmic solution is one which will provide the correct output for any legal input. The pseudo-code below would be an example of an algorithmic solution for this problem.
(1) create variable a
(2) for - number of numbers in the set
if - current number is divisible by 3
add one to variable a
(3) return a
This code would produce the correct output for this algorithmic problem regardless of what the input is as long as it is a legal input (a set of numbers). It does not matter if the set is 5 numbers or a million - the correct result will be returned.
After claiming that my line of sight code in the previous post was an algorithm I realised that I do not know the definition of one. So I did some research and wrote the above. In hindsight I think I was correct in calling my code an algorithm.