Rekursi Cepat (Dengan Contoh)

Pada artikel ini, Anda akan belajar membuat fungsi rekursif; fungsi yang memanggil dirinya sendiri.

Fungsi yang memanggil dirinya sendiri dikenal sebagai fungsi rekursif. Dan, teknik ini dikenal sebagai rekursi. Saat membuat fungsi rekursif, Anda harus membuat kondisi agar fungsi tersebut tidak memanggil dirinya sendiri tanpa batas (tanpa batas).

Bagaimana rekursi bekerja di Swift?

 func recurse () (// pernyataan recurse ()) recurse () 

Gambar di bawah ini menunjukkan bagaimana rekursi bekerja dengan memanggil dirinya sendiri berulang kali.

Dalam diagram alir di atas, rekursi dijalankan tanpa batas. Namun, hampir sepanjang waktu, Anda membuat rekursi yang dijalankan hingga beberapa kondisi terpenuhi.

Untuk mencegah rekursi tak terbatas, gunakan panggilan rekursif di dalam Pernyataan Bersyarat Swift misalnya pernyataan if… else.

Contoh 1: Cetak N bilangan positif

 func countDownToZero(num: Int) ( print(num) if num> 0 ( countDownToZero(num: num - 1) ) ) print("Countdown:") countDownToZero(num:3) 

Saat Anda menjalankan program berikut, hasilnya adalah:

 Hitung mundur: 3 2 1 0

Dalam program di atas, pernyataan print("Countdown:")mengeluarkan Countdown: di konsol. Dan pernyataan tersebut countDownToZero(num:3)memanggil fungsi yang mengambil parameter Integer.

Pernyataan di dalam fungsi countDownToZero()dijalankan dan jika kondisinya num> 0terpenuhi, fungsi countDownToZero()tersebut dipanggil lagi sebagai countDownToZero(num: num - 1).

Jika kondisi tidak terpenuhi, pemanggilan fungsi tidak dilakukan dan rekursi berhenti.

Mari kita lihat langkah-langkahnya

Langkah-langkah eksekusi
Langkah Panggilan fungsi Tercetak jumlah> 0?
1 countDownToZero(3) 3 Iya
2 countDownToZero(2) 2 Iya
3 countDownToZero(1) 1 Iya
4 countDownToZero(0) 0 Tidak (Berakhir)

Contoh 2: Menemukan faktorial sebuah bilangan

 func factorial(of num: Int) -> Int ( if num == 1 ( return 1 ) else ( return num * factorial(of:num - 1) ) ) let x = 4 let result = factorial(of: x) print("The factorial of (x) is (result)") 

Saat Anda menjalankan program berikut, hasilnya adalah:

 Faktorial 4 adalah 24

Bagaimana contoh ini bekerja?

Mari kita lihat langkah-langkahnya

Langkah-langkah eksekusi
Langkah Argumen berhasil Pernyataan kembali Nilai
1 4 return 4 * factorial(of:3) 4 * faktorial (dari: 3)
2 3 return 3 * factorial(of:2) 4 * 3 * faktorial (dari: 2)
3 2 return 2 * factorial(of:1) 4 * 3 * 2 * faktorial (dari: 1)
4 1 return 1 4 * 3 * 2 * 1

Biasanya rekursi digunakan sebagai pengganti iterasi ketika solusi untuk suatu masalah dapat ditemukan dalam dua langkah. Langkah pertama mencari solusi, jika tidak mengulangi prosesnya.

Artikel yang menarik...