There is no master algorithm for all situations. Choosing an algorithm depends on the following questions:
1) How much data do you have, and is it continuous or categorical?
2) Is the problem related to classification, association, clustering, or regression?
3) Predefined variables (labeled), unlabeled, or mix?
4) What is the goal?