Sort Stack

Description:

Given a stack, sort it using recursion.

解题方法:

通过递归进入stack的每一个元素,然后再用递归对当前元素与剩下的元素进行insert sort

Time Complexity:

O(n^2)

完整代码:

void insertSort(stack& S, int num) {
    if(S.empty() || num >= S.top())
        S.push(num);
    else {
        int temp = S.top();
        S.pop();
        insertSort(S, num);
        S.push(temp);
    }
}

void sortStack(stack& S) {
    if(S.empty())
        return;
    int temp = S.top();
    S.pop();
    sortStack(S);
    insertSort(S, temp);
}

你可能感兴趣的:(Sort Stack)