전체 배열

1445 단어 자바
재 귀적 으로 조작 합 니 다.다음 코드:
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class TotalPermutation 
{
	private static int size;
	private static int count;
	private static char[] ch;
	
	public static void main(String[] args)
	{		
		String str = "abc";
				
		size = str.length();
		
		ch = new char[size];
		
		for(int i=0; i<str.length(); i++)
			ch[i] = str.charAt(i);
		
		Anagram(size);
	}
	
	public static void Anagram(int size)
	{
		if(size == 1)
			return;
		
		for(int i=0; i<size; i++)
		{
			Anagram(size-1);
			if(size == 2)
				Display();
			Rotate(size);
		}
	}
	
	public static void Rotate(int current)
	{
		int pos = size - current; 
		char temp = ch[pos];
		
		for(int i=pos+1; i<size; i++)
			ch[i-1] = ch[i];
		ch[size-1] = temp;
	}
	
	public static void Display()
	{
		count++;
		System.out.print(count + " ");
		for(int i=0; i<size; i++)
			System.out.print(ch[i]);
		System.out.println();
	}
}

 
출력:
 
1 abc
2 acb
3 bca
4 bac
5 cab
6 cba

좋은 웹페이지 즐겨찾기