Penjelasan Permutasi di Java [Dengan Contoh Coding]

Diterbitkan: 2020-11-24

JAVA dikembangkan oleh James Gosling di Sun Microsystems pada tahun 1995. Dengan menggunakan JAVA, pengembang dapat membuat aplikasi yang stabil, aman, dan tangguh yang mampu berjalan di hampir semua platform — termasuk sistem operasi berbasis Linux, Windows, dan macOS.

Properti Write Once, Run Always dari JAVA (juga dikenal sebagai WORA) juga menghemat kebutuhan untuk mengkompilasi ulang kode yang telah dikompilasi dengan memuaskan sekali. Fleksibilitas JAVA ini menjadikannya bahasa yang ideal untuk mengintegrasikan fungsionalitas logika dan matematika kompleks yang dibangun ke dalam hampir semua jenis aplikasi lintas platform.

Keuntungan menggunakan JAVA untuk mengembangkan aplikasi web, dibandingkan dengan lingkungan pengembangan web alternatif (atau populer), mencakup tiga pilar utama manfaat aplikasi berkelanjutan, yaitu:

  1. Sintaks JAVA mudah dipelajari dan mudah diadaptasi, dan cocok untuk pembuat kode di setiap tingkat kecepatan dan kerumitan. Hal ini membuat JAVA menjadi taruhan yang aman untuk tim pengembangan yang sering mengalami pergantian personel. Waktu yang dibutuhkan untuk sumber daya baru untuk menyelaraskan diri dengan platform pengembangan umum (JAVA), adalah salah satu yang paling sedikit di industri.
  2. JAVA adalah bahasa pemrograman berorientasi objek tingkat tinggi, yang membuatnya sepenuhnya modular dalam pendekatan, dan memberi pengembang kemampuan untuk membuat potongan kode yang dapat digunakan kembali secara fungsional, sehingga mengurangi upaya. Pustaka besar fungsi bawaan juga mengurangi ketergantungan pada plugin tersier lain atau pengaya kompiler, skrip, dll – yang pada gilirannya memberikan JAVA salah satu waktu implementasi yang paling sedikit.
  3. JAVA memadukan yang terbaik dari semua dunia dengan menjadi platform-independen seperti yang dibahas di atas. Aplikasi web yang dikembangkan di JAVA dapat dengan mudah dipindahkan dari satu sistem operasi ke sistem operasi lain tanpa kehilangan fungsionalitas, dan itu adalah utilitas yang tak ternilai untuk dimiliki di lingkungan pengembangan apa pun.

Sebagai salah satu aspek yang membuat JAVA begitu menguntungkan sebagai platform pengembangan untuk web, dependensi implementasi minimal dan sintaksis yang terdengar secara matematis dapat dengan murah hati dieksploitasi untuk melakukan hampir semua instruksi matematis atau logis hanya dengan menjalankan fungsi bawaan, dengan tambahan minimum kustomisasi.

Salah satu contoh paling cemerlang dari fleksibilitas dalam kode ini, adalah kemampuan untuk melakukan permutasi di JAVA — lebih khusus lagi, untuk benar-benar mengacak dan menemukan semua kemungkinan permutasi dari semua karakter yang tersedia dalam string tertentu.

Dalam tutorial terpandu ini, kita akan belajar bagaimana mencoba melakukan permutasi ini di JAVA dengan menyimpan karakter pertama dari string di lokasi string yang "dilacak", dan menjalankan fungsi generatePermutation() untuk mengacak variasi yang berbeda dengan yang lainnya. karakter dalam string.

Baca: Pertanyaan & Jawaban Wawancara Java

Daftar isi

Permutasi di Java — Konsep Algoritma Backtracking

Untuk menemukan solusi untuk masalah permutasi ini di JAVA , pertama-tama kita harus membiasakan diri dengan konsep yang telah diterima secara luas dalam komunitas pengembangan web, sebagai algoritma Algoritma backtracking adalah proses rekursif yang bergantung pada perbaikan secara berkala satu karakter dari string yang diberikan dan menggabungkannya dengan semua kemungkinan permutasi dari semua karakter lainnya, dan mengulangi proses ini dengan karakter di setiap posisi string secara individual, untuk mencapai hasil maksimum. (dan semua kemungkinan) jumlah variasi untuk string itu.

Algoritma permutasi dalam JAVA ini lebih mudah dipahami dalam konteks string yang diberikan dengan tiga karakter. Katakanlah tiga karakter ini dalam string yang diberikan adalah A, B, dan C.

Langkah pertama untuk melakukan permutasi ini di JAVA adalah memulai dengan memperbaiki satu karakter (kita akan selalu memulai dengan memperbaiki karakter yang tersedia di posisi pertama), dan kemudian melakukan swap dengan semua karakter yang tersisa, dengan menggabungkannya dengan aslinya ( tetap) karakter.

Sebagai contoh, dalam contoh string ABC, kami akan melakukan tiga iterasi string pertama kami dengan memperbaiki karakter A (yang merupakan karakter Kami kemudian sampai pada kombinasi berikut: ABC , BAC , dan CBA .

Langkah selanjutnya adalah dengan cara yang sama " memperbaiki " karakter yang ditemukan di posisi string berikutnya (dalam hal ini, karakter yang ditemukan di posisi kedua string, yaitu B ) dan menukar karakter yang tersisa (termasuk karakter yang Akhirnya, kami akan terus mengulangi langkah ini dengan setiap tingkat pengacakan yang dicapai, sampai kami sampai pada satu set lengkap dari semua kemungkinan permutasi:

ABC

ACB

BACA

BCA

CBA

TAKSI

Di bagian kode sampel/keluaran yang diinginkan yang tersedia di akhir artikel ini, kami akan mengubah upaya untuk melakukan permutasi di JAVA, menjadi kode yang dapat dibaca dan dengan demikian melihat permutasi yang dihitung secara waktu nyata.

Melakukan Permutasi di JAVA — Algoritma Rekursif untuk Mundur dan Tukar

Ringkasan singkat dari proses untuk mengambil string acak dan melakukan permutasi menyeluruh di JAVA, dapat dijelaskan dengan algoritma rekursif langkah demi langkah berikut:

  1. Definisi String – Pertama, tentukan string. Anda selalu dapat memilih untuk menerima string acak sebagai variabel input, tetapi untuk kejelasan tujuan dan upaya, kami akan menggunakan string ABC yang telah ditentukan sebelumnya dalam contoh ini.
  2. Character Fixing – Perbaiki satu karakter (mulai dengan karakter di posisi pertama dan terus tukarkan dengan semua karakter yang tersisa).
  3. generatePermutation() – Memanggil dan menggunakan output dari fungsi generatePermutation(), untuk semua karakter yang tersisa.
  4. Recursive Backtracking – Lakukan algoritma “backtracking”, dan terus bertukar karakter secara rekursif hingga kode Anda mencapai akhir string (Dalam contoh kami saat ini, hingga C).

Melakukan Permutasi di JAVA — Contoh Kode:

kelas publik PermuteString {

//mendefinisikan fungsi untuk menukar karakter pada posisi i dengan semua karakter pada posisi j

public static String swapString(String a, int i, int j) {

// definisi karakter untuk karakter tetap dalam string

char[] b =a.toCharArray();

karakter ch;

// melakukan swap di langkah berikutnya

ch = b[i];

b[i] = b[j];

b[j] = ch;

kembalikan String.valueOf(b);

}public static void main(String[] args)

{

//mendefinisikan string default ABC

String str = “ABC”;

//menghitung panjang string

int len ​​= str.panjang();

//mencetak semua pengacakan

System.out.println(“Berikut ini adalah semua kemungkinan permutasi dari string ABC: “);

generatePermutation(str, 0, len);

}

//mendefinisikan fungsi untuk menghasilkan semua kemungkinan permutasi dari string

public static void generatePermutation(String str, int start, int end)

{

// mencetak semua permutasi

jika (mulai == akhir-1)

System.out.println(str);

lain

{

untuk (int i = mulai; i < akhir; i++)

{

//memperbaiki karakter untuk menukar string

str = swapString(str,mulai,i);

//memanggil fungsi generatePermutation() secara rekursif untuk semua karakter yang tersisa generatePermutation(str,start+1,end);

//melakukan algoritma backtracking untuk menukar karakter lagi

str = swapString(str,mulai,i);

}

}

}

}

Melakukan Permutasi di JAVA — Output Berasal dari Kode Contoh:

Saat Anda mengkompilasi dan menjalankan sampel ini, output yang diinginkan akan terlihat seperti ini:

Berikut ini adalah semua kemungkinan permutasi dari string ABC:

ABC

ACB

BACA

BCA

CBA

TAKSI

Harus Dibaca: Proyek & Topik Java yang Menarik

Kesimpulan

Kami harap Anda menemukan tutorial untuk melakukan permutasi di JAVA ini bermanfaat.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang Java, OOP & pengembangan perangkat lunak full-stack, lihat Diploma PG upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Full-stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9 + proyek, dan tugas, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan papan atas.

Persiapkan Karir Masa Depan

PEMBELAJARAN TERPERCAYA INDUSTRI - SERTIFIKASI YANG DIAKUI INDUSTRI.
Belajarlah lagi