什么是字典序、如何找字典排序(C++)

467 阅读1分钟

字典排序算法四步法:

字典排序:

第一步:从右至左找第一个左邻小于右邻的数,记下位置i,值list[a]

第二部:从右边往左找第一个右边大于list[a]的第一个值,记下位置j,值list[b]

第三步:交换list[a]和list[b]的值

第四步:将i以后的元素重新按从小到大的顺序排列

举例:125643的下一个字典序列

第一步:右边值大于左边的3<4,4<6,6>5,则i=2,list[a]=5

第二步:从右往左找出第一个右边大于list[a]=5的值,找到6>5,j=3;list[b]=6;

第三步:交换list[a]和list[b]的值,序列125643->126543

第四步:将位置2以后的元素重新排序,126543->126345;

结束: 126345即125643的下一个序列

原文链接:blog.csdn.net/qq_34672688…