Classification is a supervised learning technique in data mining where training data is given to classifier that builds classification rules. Later if test data, is given to classifier, it will predict the values for unknown classes. Classification is process of generalizing the data according to different instances. Some major kinds of classification algorithms including C4.5, k-nearest neighbor classifier, Naive Bayes, SVM, Apriori, and AdaBoost. This paper provides an inclusive survey of different classification algorithms and their advantages and disadvantages.