Classification is used to find out in which group each data instance is related within a given dataset. It is used for classifying data into different classes according to some constrains. Several major kinds of classification algorithms including C4.5, ID3, k-nearest neighbor classifier, Naive Bayes, SVM, and ANN are used for classification. Generally a classification technique follows three approaches statistical, machine learning and neural network for classification. While considering these approaches this paper provides an inclusive survey of different classification algorithms and their features and limitations.