Stack<Integer> stack = new Stack<Integer>();
stack.push(1);
stack.push(3);
stack.push(2);
stack.push(8);
stack.push(5);
get(stack);
while (!stack.isEmpty()){
System.out.println(stack.pop());
}
private static void get(Stack<Integer> stack) {
Stack<Integer> helper = new Stack<Integer>();
while (!stack.isEmpty()) {
if (helper.isEmpty() || stack.peek() >=helper.peek()) {
helper.push(stack.pop());
}else {
Integer c = stack.pop();
while (!helper.isEmpty()&& c < helper.peek()) {
stack.push(helper.pop());
}
helper.push(c);
}
}
while (!helper.isEmpty()) {
stack.push(helper.pop());
}
}