Thuật toán sinh trong Java

Lập trình Java

Thuật toán sinh (hay còn gọi là permutation) là một thuật toán được sử dụng để sinh tất cả các hoán vị của một tập hợp. Trong Java, chúng ta có thể sử dụng thuật toán đệ quy để sinh các hoán vị này. Dưới đây là một ví dụ về cách sử dụng thuật toán sinh trong Java:

public class PermutationExample {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        generatePermutation(arr, 0);
    }

    public static void generatePermutation(int[] arr, int index) {
        if (index == arr.length - 1) {
            System.out.println(Arrays.toString(arr));
            return;
        }
        for (int i = index; i < arr.length; i++) {
            swap(arr, index, i);
            generatePermutation(arr, index + 1);
            swap(arr, index, i);
        }
    }

    public static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}

Trong ví dụ này, chúng ta có một mảng {1, 2, 3} và muốn sinh tất cả các hoán vị của nó. Chúng ta gọi hàm generatePermutation(arr, 0) với arr là mảng đã cho và 0 là chỉ số ban đầu của mảng.

Hàm generatePermutation sử dụng đệ quy để sinh tất cả các hoán vị của mảng. Nó sẽ hoán đổi các phần tử của mảng và tiếp tục đệ quy để sinh các hoán vị khác. Khi đến cuối cùng, nó sẽ in ra các hoán vị đã được sinh ra.

Hàm swap được sử dụng để hoán đổi hai phần tử của mảng.

Kết quả của chương trình sẽ là tất cả các hoán vị của mảng {1, 2, 3} được in ra trên màn hình.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *