字典序全排序: 1 import java.util.Arrays; 2 import java.util.Scanner; 3 public class Cao41 { 4 /** 5 * @param 第一行输入个数N,第二行输入序列1-9, 6 * 输出字典序排列 具体做法如下: 首先要将数组a从小到大排序,输出第一个排序,然后进入循环 先用getindex方法找到最靠后的,后面有比啊a[index]大的index,当index不存在设index=-1,结束循环。 然后从 index到end找出比a[index]大的数中最小的啊a[min]. 将a[index]与a[min]交换,再将数组a从index到end排序,打印数组 7 */ 8 public static void getAllOrder(int[] a,int N){ 9 int end=N-1;10 int index=end;11 sort(a,0,N-1);12 System.out.println(Arrays.toString(a));13 do{14 index=getIndex(a,end);15 if(index==-1)break;16 int min=getMin(a,index,end);17 swap(a,index,min);18 sort(a,index+1,end);19 System.out.println(Arrays.toString(a));20 }while(index!=-1);21 }22 /**23 * @return 找出数组a中后续数字有比a[index]大的数字,且最靠后的index24 */25 public static int getIndex(int[] a,int end){26 for(int i=end-1;i>=0;i--){27 if(a[i]
1 public class Cao13 { 2 3 /** 4 * @输出数组全排列 5 */ 6 static int j=0; 7 static String s=""; 8 public static void mypermutation(int[] a,int begin,int end){ 9 if(begin==end)10 {11 String temp="";12 for(int i=0;i