title: Merge Sort with other data structures?
body: <p>It seems that in a lot of text books top down Merge Sort is done with arrays given its advantage of random access.</p>
  
  <p>I am wondering if there is a way of doing Merge Sort with other data structures? Say the data is stored in a queue or a stack, is it possible to do Merge Sort on the queue/stack with at most another auxiliary queue/stack?</p>
  
  <p>My main concern is that since there is no random access, would merge sort in this case still be able to reach O(n logn) efficiency?</p>