机试题:全排列
import java.util.Arrays;
import java.util.Scanner;
public class D_4_2_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
String str=sc.next();
char a[]=str.toCharArray();
int n=a.length;
Arrays.sort(a);
fullsort(a,0,n-1);
}
private static void fullsort(char[] a, int start, int end) {
// TODO Auto-generated method stub
if(start==end)
{
for(char i:a)
{
System.out.print(i);
}
System.out.println();
return;
}
for(int i=start;i<=end;i++)
{
swap(a,i,start);
fullsort(a,start+1,end);
swap(a,i,start);
}
}
private static void swap(char[] a, int i, int j) {
// TODO Auto-generated method stub
char temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
然而还有bug
错误原因在于未能按字母表从小到大的顺序输出
应该先输出dbc
怎么改呢???
未完待续……