> For the complete documentation index, see [llms.txt](https://algorithm.prettylog.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://algorithm.prettylog.com/algorithm-problems/algoexpert/medium/sort-stack-recursive-good.md).

# Sort Stack ⇒ recursive good -

![](/files/UA12tLGkj5lhrxO0ox1i)

* n^2, n

```tsx
function sortStack(stack) {
  
  takeAllValues(stack);
  return stack;
}

function takeAllValues(stack, idx) {
  if (stack.length === 0) return stack;

  const top = stack.pop();
  takeAllValues(stack);

  sortInOrderAtEachStep(stack, top);
}

function sortInOrderAtEachStep(stack, valueToCompare) {
  if (stack.length === 0 || stack[stack.length - 1] <= valueToCompare) {
    stack.push(valueToCompare);
    return;
  }

  // take top
  const top = stack.pop();

  // sort element inside
  sortInOrderAtEachStep(stack, valueToCompare);

  // push top
  stack.push(top);
  
}

exports.sortStack = sortStack;
```
