added iterative merge sort