Java簡單演算法——資料全排列
阿新 • • 發佈:2019-01-25
題目:
將1-5,5個數字進行全排列,並輸出共有多少種方案?
import java.util.Arrays; /* 將1-5,5個數字進行全排列,並輸出共有多少種方案 */ public class Permutation { private static int sum,temp; private static int[] numArr={1,2,3,4,5}; public static void main(String[] args) { sum=0; perm(numArr,0,numArr.length-1); System.out.println(sum); } private static void perm(int[] numArr, int start, int end) { if(start==end){ sum++; System.out.println(Arrays.toString(numArr)); }else{ for(int i=start;i<=end;i++){ swap(numArr,start,i); perm(numArr, start+1, end); swap(numArr,start,i);//將之前交換的資料換回來 } } } //交換資料 private static void swap(int[] numArr, int x, int y) { temp=numArr[x]; numArr[x]=numArr[y]; numArr[y]=temp; } }