Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menjana Semua Pilihatur Tatasusunan Menggunakan Algoritma Rekursif dan Bukan Rekursif?
Permutasi Tatasusunan: Penjelasan Mendalam
Untuk menjana pilih atur tatasusunan, adalah penting untuk memahami cara unsur-unsur disusun. Permutasi melibatkan penyusunan semula elemen tatasusunan untuk mencipta jujukan baharu. Bilangan pilih atur yang mungkin untuk tatasusunan dengan n elemen diberikan oleh n!.
Algoritma Rekursif
Salah satu cara untuk menjana pilih atur ialah menggunakan pendekatan rekursif, di mana anda bertukar-tukar elemen secara berulang dan gunakan pilih atur pada elemen tatasusunan yang tinggal.
public static void permute(java.util.List<Integer> arr, int k) { for (int i = k; i < arr.size(); i++) { java.util.Collections.swap(arr, i, k); permute(arr, k + 1); java.util.Collections.swap(arr, k, i); } if (k == arr.size() - 1) { System.out.println(java.util.Arrays.toString(arr.toArray())); } }
Algoritma ini bermula dengan menukar elemen pertama dengan setiap elemen yang tinggal. Kemudian, ia secara rekursif menggunakan operasi yang sama pada elemen yang tinggal. Selepas setiap panggilan rekursif, elemen ditukar kembali ke kedudukan asalnya.
Algoritma Bukan Rekursif
Untuk pendekatan berulang, pertimbangkan langkah berikut:
Contoh: Mengatur Tatasusunan [3, 4, 6, 2, 1]
Algoritma Rekursif:
Algoritma Bukan Rekursif:
Hasil untuk kedua-dua algoritma adalah sama: semua pilih atur yang mungkin dijana dan dicetak.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Semua Pilihatur Tatasusunan Menggunakan Algoritma Rekursif dan Bukan Rekursif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!