全排序java

来源:互联网 发布:藏宝库源码 编辑:程序博客网 时间:2024/06/08 06:50

面试中被问到数组的全排序问题,被问到也是一脸懵逼。虽然上课时学过此类问题,也没留下态度印象,因此悲剧。这里记录以下代码(5分钟左右),留以后翻看。

public class Permutation {    public static void main(String[] args) {        int a[] = new int[]{1,2,3};        permutation(a, 0);    }    private static void permutation(int a[], int i) {        if(i == a.length - 1) {            System.out.println(Arrays.toString(a));        } else {            for(int j = i ; j <  a.length; j++) {                swap(a, j,i);                permutation(a, i+1);                swap(a, j,i);            }        }    }    private static void swap(int[] a, int j, int i) {        if(j == i) {            return;        }        a[i] = a[i] + a[j];        a[j] = a[i] - a[j];        a[i] = a[i] - a[j];    }}
原创粉丝点击