Bộ sưu tập

Tìm các hoán vị của một mảng các phần tử


https://codersontrang.com/2012/08/19/tim-cac-hoan-vi-cua-mot-mang-cac-phan-tu/

Đoạn mã dưới đây sẽ in ra các hoán vị của một mảng các phần tử kiểu int


public class Permutation {
	public static void main(String [] args){
		int [] arrays = new int[] {1,2,3};
		Permutation p = new Permutation();
		p.getPermutation(arrays);
	}
	
	public void getPermutation(int [] array){
		printPermutation(array, 0, true);
	} 
	
	private void printPermutation(int [] array, int start, boolean display){
		if(display){
			System.out.println("");
			for(int i = 0; i < array.length; i++){
				System.out.print(array[i] + ", ");
			}
		}
		
		for(int j = start; j < array.length; j++){
			int temp = array[start];
			array[start] = array[j];
			array[j] = temp;
			if(j == start){
				printPermutation(array, start+1, false);
			}else{
				printPermutation(array, start+1, true);
			}	 
			temp = array[start];
			array[start] = array[j];
			array[j] = temp;
		}
	}
}


Khi chạy chương trình, kết quả trả về sẽ như sau:

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google photo

Bạn đang bình luận bằng tài khoản Google Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s