package Java2012大赛; import java.util.Arrays; import java.util.HashSet; import java.util.Set; /*实现了n个数在m(n>=m)个位置上的全排列 * */ public class 全排列02 { static Set set = new HashSet(); static int i;//要排列的个数 static int j;//在几个位置排列 static int num = j;//一个定值 static int[] array;//存储一个排列 public static void main(String[] args) { int i = Integer.parseInt(javax.swing.JOptionPane.showInputDialog("输入排列的个数")); int j = Integer.parseInt(javax.swing.JOptionPane.showInputDialog("在几个位置排列")); num = j; array = new int[num]; fx(i, j, num); } private static void fx(int i, int j, int num) { if (j == 1) {//如果j==1 for (int a = 1; a <= i; a++) { array[num - 1] = a; for (int k = 0; k < num - 1; k++) { set.add(array[k]); } set.add(array[num - 1]); set.add(a); if (set.size() == num) System.out.println(Arrays.toString(array)); set.clear(); } return; } j--; for (int a = 1; a <= i; a++) { array[num - j - 1] = a; fx(i, j, num); } }
/* package Java2012大赛; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class 四个数3位全排列02 { static List list=new ArrayList(); static Set set=new HashSet(); static int count=0; public static void main(String[] args) { int i = 0; int j = 0; int k = 0; int t = 0; int length=4; printList(); } public static void printList() { int i; int j; int k; for (i = 1; i <= 4; i++) for (j = 1; j <= 4; j++) for (k = 1; k <= 4; k++){ list.add(i); list.add(j); list.add(k); set.add(i); set.add(j); set.add(k); if(set.size()==3){ count++; System.out.println(list); } list.clear(); set.clear(); } System.out.println(count); } } */
}
全排列(数组)
最新推荐文章于 2024-03-26 08:00:00 发布