由一个已知的1~N的排列生成它的下一个排列的方法:
1、从右向左寻找第一个升序位置,即最右的数字比左边的大的位置,即满足A[j]<A[j+1]的j的最大值;
2、从j开始向右寻找满足A[k]>A[j]的k的最大值;
3、交换A[j]和A[k];
4、将A[j+1]至A[n]反向。
由一个已知的1~N的排列生成它的下一个排列的方法:
1、从右向左寻找第一个升序位置,即最右的数字比左边的大的位置,即满足A[j]<A[j+1]的j的最大值;
2、从j开始向右寻找满足A[k]>A[j]的k的最大值;
3、交换A[j]和A[k];
4、将A[j+1]至A[n]反向。