Yeah an 'algorithm' is just a solution to a problem. It can be written in any language you like: ie it may be in ATMega32 code - but, more often, is written in some kind of 'pseudo code' that can then be re-written for the target platform.
So if you were writing some code to 'Get the car out of the garage' - then one of the early steps in the algorithm might be: 'Make sure the garage doors are open!'. The code doesn't tell you how to do this as it can depend on your garage - you may/or not/ have padlocks on the gates etc. ie the code cannot get 'Every car out of every garage'. So the finer details are often down to you to flesh out.