问题
设计一个可以把栈中元素按照升序排列的算法,并且算法不对栈的实现做限制
代码
/**
* 设计一个可以把栈中元素按照升序排列的排序算法,不限制栈的实现方式
*/
public static LinkedListStack StackSorter(LinkedListStack s) {
LinkedListStack r = new LinkedListStack();
while (!s.isEmpty()) {
int temp = s.pop();
while (!r.isEmpty() && r.top() > temp) {
s.push(r.pop());
}
r.push(temp);
}
return r;
}
时间复杂度o(n2) 空间复杂度O(n)用于栈空间开销