n class="n">runSort</span></code>.  Start with an empty result list. At each step, split a run from the remaining input list and merge the run into the result. Rinse and repeat until the remaining input list is empty. Voila, a fully sorted list!</p>

<p>Note that <code class="language-c++ highlighter-rouge"><span class="n">runSort</span></code> is <strong>entirely iterative</strong>. It loops calling <code class="language-c++ highlighter-rouge"><span class="n">splitRun</span></code> and <code class="languag