private void mergeForceCollapse(){
  while (stackSize > 1) {
    int n=stackSize - 2;
{
      if (n > 0 && runLen[n - 1] < runLen[n + 1])       n--;
    }
    mergeAt(n);
  }
}

private void mergeForceCollapse ( ) { while ( stackSize > 1 ) { int n = stackSize - 2 ; { if ( n > 0 && runLen [ n - 1 ] < runLen [ n + 1 ] ) n -- ; } mergeAt ( n ) ; } }
merges all runs on the stack until only one remains . this method is called once , to complete the sort .
