An improved approach involves utilizing a priority queue (min-heap) to efficiently identify the next smallest element from the sorted lists. Since the priority queue keeps the smallest element at the top, we can swiftly retrieve the smallest element from all lists without the need to check each list one by one. Below is an example in Python that employs the heapq module, which implements the heap queue algorithm (priority queue algorithm): import heapq def merge_sorted_lists ( lists ) : result = [ ] heap = [ ] # fill the heap with the first elements from each list for i in range ( len ( lists ) ) : if lists [ i ] : # ensure the sublist is not empty heapq . heappush ( heap , ( lists [ i ] [ 0 ] , i ) ) lists [ i ] = lists [ i ] [ 1 : ] # remove the first element from the original list while heap : val , index = heapq . heappop ( heap ) result . append ( val ) if lists [ index ] : # check for more elements in this sublist heapq . heappush ( heap , ( lists [ index ] [ 0 ] , index ) ) lists [ index ] = lists [ index ] [ 1 : ] return result This approach offers a more advantageous time complexity of O(n log m) , where n represents the total number of elements and m denotes the number of sub-lists, as we perform a single push and pop operation for each element in the heap.