Assumptions to consider when formulating algorithms
-
What are the range of inputs and outputs?
(a) Characteristics of input/output values? (i.e. duplicated records, redundant records, uncleaned data etc)
(b) data structure of inputs/outputs: can you think of a structure that will make everyone's life easier.
-
What are the costs of inaccuracy? Can they be latter fixed?
-
Time limitations?
-
Computational power limitations?
And designing the actual algorithm:
-
Can you understand it by looking at it?
-
What parts do you think will change?
All the above factors and more will influence how you solve a particular problem.