add merge sort. 

this imp is slower 3 times compared to std::sort