Hi prince444, The right algo to use, depends on tests you make with your own representative data set. Trying to follow hard and fast rules for every problem, is the quickest way to find yourself falling short.
If you search google for permutations, you'll get a zillion hits. Wikipedia might be the best for an overall, and sub-searches on specific types, should help out, as well. After all the mathematical and "logical" analysis, hot air, and hand waving, it's the testing that will answer your question, not proclamations. adak