1.建立三个栈a,b,c 2.读取原数组,从后往前置入c 重复: 重复直到a为空: 3.取出c.top元素 4.若b为空,把该元素置入b 否则与b.top比较,若大于等于b.top,则放入b栈,反之放入a栈 若a为空,则由下至上存入答案数组(手写栈),退出循环 否则: 由上至下把b的元素移至c上 由上至下把a的元素移至c上
时间复杂度预估:O(n^2) 空间复杂度预估:O(n) (比猴子排序强) 本蒟蒻之前写过c++的实现,RE了 有没有大佬能做一些原理说明()