下一个排列 举例:1,2,3,4,5 -> 1,2,3,5,4
对于长度为n的排列a,
1,首先从后向前查找第一个顺序对(i,i+1),满足a[i] < a[i+1] ,(后一个元素比前一个元素大,从i开始就不满足降序序列了),比如例子中的4,从4开始不满足关系式a[i] < a[i+1]
2.找到了顺序对,在区间[ i+1,n)中从后向前查找第一个元素j满足a[i] < a[j]. 较大数即为 a[j], 比如例子中的5.
3.交换a[i] 和a[j], 则【i+1,n)必定是降序。通过双指针反转区间i+1后的元素变为升序,而无需对该区间进行排序。