To answer the question, there are many general books on algorithm design that would be appropriate for any language.