全排列(数组)

来源:互联网 发布:qt5串口通信 源码 编辑:程序博客网 时间:2024/06/06 07:03
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==1for (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);}}*/

}
	
				
		
原创粉丝点击