# Solution Review: Merge a Number of Sorted Arrays

This review discusses the solution of the Merge Sorted Arrays challenge in detail.

We'll cover the following

## Solution # 1

A naive solution to this problem is to append all the k arrays one after another in the output $(N*k)$ array and sort the output array using the std:: sort() function.

### Time Complexity

Appending k sorted arrays into one output array would take $O(N*k)$. Since std::sort() runs in $O(log(size))$ and the size of the output array is $(N*k)$, sorting would take $O(log(N * k))$. The total time complexity of this naive solution would thus be $O(N*k * log(N*k))$.

## Solution # 2 (Efficient)

The divide and conquer approach to this problem emerges when we start looking at the k arrays as the intermediate state of the merge sort algorithm. In other words, k sorted arrays in the merge sort algorithm wait to be merged into a bigger, merged, and sorted array.

Level up your interview prep. Join Educative to access 80+ hands-on prep courses.