解:
先举个例子看看:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
三位数时有6种情况,以位数划分,从高位向低位,可总结出,百位有3种情况(1,2,3),在百位确定的情况下,十位有2种情况,而个位固定。共3x2情况。
再看四位数,最高位有4种情况,然后就与三位数情况相同,共4x3x2种。
因此可以用位数当参数来确定递归次数。这个参数也可以用来确定当前位数有几种情况。
当参数为1时,就可以输出数组,并 r e t u r n return return。
需要注意的是数组属于引用类型,作为参数传递时,指向的是同一片地址,数的交换方式就要变化下。
多次尝试后,得出方便计算的排序,如下:
1 2 3
1 3 2
3 1 2
3 2 1
2 3 1
2 1 3
用 w h i l e while