Metode urutan kamus adalah untuk menghasilkan semua pengaturan satu per satu sesuai dengan gagasan penyortiran kamus.
Dalam matematika, urutan kamus atau kamus (juga dikenal sebagai tatanan kosa kata, urutan kamus, urutan abjad, atau urutan kamus) adalah metode urutan abjad di mana kata -kata yang diatur alfabet berdasarkan urutan abjad. Generalisasi ini terutama terletak pada mendefinisikan urutan total sekuens (sering disebut kata -kata dalam ilmu komputer) dari elemen yang mendefinisikan serangkaian elemen yang dipesan sepenuhnya (sering disebut alfabet).
Untuk pengaturan angka 1, 2, 3 ... n, urutan pengaturan yang berbeda ditentukan dengan membandingkan urutan angka yang sesuai satu dengan satu dari kiri ke kanan. Misalnya, untuk pengaturan 12354 dan 12345 dari 5 angka, pengaturan 12345 ada di depan dan pengaturan 12354 ada di belakang. Menurut peraturan ini, yang pertama di antara semua pengaturan dari 5 angka adalah 12345 dan yang terakhir adalah 54321.
Misalnya, semua pengaturan yang terdiri dari 1, 2, 3, dari kecil hingga besar adalah:
123.132.213.231.312.321
Semua pengaturan yang terdiri dari 1, 2, 3, 4:
1234, 1243, 1324, 1342, 1423, 1432,
2134, 2143, 2314, 2341, 2413, 2431,
3124, 3142, 3214, 3241, 3412, 3421,
4123, 4132, 4213, 4231, 4312, 4321.
Pertama, urutan karakter dalam set karakter yang diberikan harus ditentukan, dan atas dasar ini, setiap pengaturan dihasilkan secara berurutan.
[Contoh] Set karakter {1,2,3}, angka yang lebih kecil adalah yang pertama, sehingga pengaturan lengkap yang dihasilkan dalam urutan kamus adalah: 123, 132, 213, 231, 312, 321.
Hasilkan permutasi berikutnya yang diberikan permutasi penuh, dan yang disebut berikutnya adalah string yang berdekatan dengan yang berikutnya tanpa urutan kamus. Ini mensyaratkan bahwa yang satu ini memiliki awalan yang sama dengan yang berikutnya selama mungkin, yaitu variasi terbatas pada akhiran sesingkat mungkin.
Ada hubungan tertentu antara pengaturan terakhir dan pengaturan sebelumnya. Proses solusi dari pengaturan terakhir adalah sebagai berikut:
Dengan Pengaturan (P) = 2763541, diurutkan berdasarkan kamus, apa pengaturan selanjutnya?
2763541 (temukan urutan positif terakhir 35)
2763541 (temukan angka 4 terakhir setelah 3 dan lebih besar dari 3)
2764531 (sakelar 3, 4 posisi)
2764135 (Invert 5, 3, 1 setelah 4)
Berikut ini adalah deskripsi dari pengaturan p [1 ... n]:
Temukan i = max {j | p [j 1] <p [j]} (temukan urutan positif terakhir)
Temukan J = Max {K | p [i 1] <p [k]} (temukan yang terakhir lebih besar dari p [i 1])
Exchange p [i 1] dan p [j] untuk mendapatkan p [1] ... p [i-2] p [j] p [i] p [i+1] ... p [j-1] p [i-1] p [j+1] ... p [n]
Membalikkan angka setelah p [j] untuk mendapatkan p [1] ... p [i-2] p [j] p [n] ... p [j+1] p [i-1] p [j-1] ... p [i]
Implementasi kode adalah sebagai berikut:
private static int [] getPerMutation (int [] in) {int [] ns = in; int base = -1; for (int i = ns.length-1; i> = 1; i--) {if (ns [i-1] <ns [i]) {base = i-1; break;}} // itu telah diatur ke yang terakhir dan lebih banyak {base = i-1; break;}} // itu telah diatur ke yang terakhir dan di bawah; (int i = ns.length-1; i> = base; i--) {if (ns [i]> ns [base]) {lebih besar = i; break;}} // System.out.println (lebih besar); swap (ns, basis, lebih besar); reverse (ns, basis+1, ns.length-1); return everse (ns (ns, basis+1, ns.length-1); return ns; return o); {int left = i, kanan = j; while (kiri <kanan) {swap (ns, kiri, kanan); kiri ++; kanan-;}} swap void statis pribadi (int [] ns, int basis, int lebih besar) {int temp = ns [base]; ns [base] = ns [lebih besar]; ns [lebih besar] = ns [base];Meringkaskan
Di atas adalah semua tentang analisis algoritma penyortiran kamus bahasa java dan contoh kode. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!