机试题:全排列

机试题:全排列

机试题:全排列

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

怎么改呢???

未完待续……