java 排序

来源:百度知道 编辑:UC知道 时间:2024/05/13 03:02:33
假如有一个string="abcdef"
如果想每次把这个string的不同排列都输出一次应该怎么写
如"acbdef,acdbef"不可重复

楼主说的是全排列

public class Paixu {
public static void main(String[] args) {
char[] in = "abcdef".toCharArray();

new Paixu().paixu(in, in.length, 0);
}

private void paixu(char[] array, int n, int k) {
if (n == k) {
char[] out = new char[n];
for (int i = 0; i < array.length; i++) {
out[i] = array[i];
}
System.out.println(new String(out));
} else {
for (int i = k; i < n; i++) {
swap(array, k, i);
paixu(array, n, k + 1);
swap(array, i, k);
}
}
}

private void swap(char[] a, int x, int y) {
char temp = a[x];
a[x] = a[y];
a[y] = temp;
}
}

假设string为str="abcdef"
char[] ch = str.toCharArray;
for(int i=0;i<str.length;i++){
for(j=0;j<str.length-1;j++){
char temp = ch[j];
ch[j] = ch[j+1];
ch[j+1] = temp;
Syste