I developed an Algorithm Design Template (ADT) to help with deconstructing software problems and coming up with solutions to them.
The template helps you identify inputs and outputs, run through examples, and come up with ideas, all in a structured fashion.
I recommend using the ADT when trying to come up with complex software algorithms.
Click the link below to download the ADT:
Algorithm Design Template