merge sort with iterative