In the past few decades, clustering or cluster analysis has emerged as an essential tool in several fields to help find conceptually meaningful groups of objects that share similar characteristics. It has proven useful in a wide variety of domains such as engineering, computer science, medical science, social science, etc. Clustering is defined as the problem of partitioning an unlabeled data set into groups (or clusters) of similar objects such that objects in the same cluster are more similar to each other than objects in other clusters. The clustering problem is known to be NP-hard. Over the years, much research effort has been made to design efficient clustering algorithms to provide high quality solutions. In this thesis, we give a clustering algorithm, which is based on differential evolution but has additional features, such as local optimization. Experimental results on a total of 17 real-world data sets of various sizes and dimensions show that the algorithm is competitive, fast, efficient, and provides good clustering solutions.