Merge Sort is a sorting technique which divides the array into sub-arrays which have size 2 and merge (combined) adjacent (near) pair. After first process you have n/2 array of size 2. this process is repeated until there is only one array remaining of size n. http://www.tutorial4us.com/data-structure/c-merge-sort