void mergeAt(int n) { assert stackSize >= 2; merge(runBase(n + 1), runBase(n), runEnd(n)); for (int j = n + 1; j > 0; --j) { setRunEnd(j, runEnd(j-1)); } --stackSize; }
void mergeAt(int n) { assert stackSize >= 2; merge(runBase(n + 1), runBase(n), runEnd(n)); for (int j = n + 1; j > 0; --j) { setRunEnd(j, runEnd(j-1)); } --stackSize; }
void mergeAt(int n) { assert stackSize >= 2; merge(runBase(n + 1), runBase(n), runEnd(n)); for (int j = n + 1; j > 0; --j) { setRunEnd(j, runEnd(j-1)); } --stackSize; }
void mergeAt(int n) { assert stackSize >= 2; merge(runBase(n + 1), runBase(n), runEnd(n)); for (int j = n + 1; j > 0; --j) { setRunEnd(j, runEnd(j-1)); } --stackSize; }