Berpikir Rekursif: Basis & Rekursi
Memecah soal menjadi salinan yang lebih kecil
Berpikir Rekursif: Basis & Rekursi adalah pelajaran Coding Interview Prep gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Coding Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Coding Interview Prep mencakup 4 pelajaran total.
Makna Rekursi
Rekursi adalah fungsi yang menyelesaikan masalah dengan memanggil dirinya sendiri pada bagian yang lebih kecil, sampai bagian tersebut cukup kecil untuk dijawab secara langsung. 🌀
Percayai Salinan yang Lebih Kecil
Pola pikir utamanya adalah lompatan keyakinan: anggap panggilan rekursif sudah bekerja pada masukan yang lebih kecil, lalu bangun jawaban Anda berdasarkan hasilnya.
Setiap Rekursi Memerlukan Kasus Dasar
Kasus dasar adalah masukan terkecil yang Anda jawab tanpa melakukan rekursi. Tanpanya, fungsi akan memanggil dirinya sendiri selamanya dan mengalami kerusakan.
Kasus Rekursif
Kasus rekursif mengurangi ukuran masalah dan memanggil dirinya sendiri pada versi yang lebih kecil. Setiap panggilan harus bergerak mendekati kasus dasar.
Faktorial sebagai Contoh Pertama
Di sini, faktorial menunjukkan kedua bagiannya: kasus dasar saat nol dan pemanggilan rekursif pada n dikurangi satu.
def fact(n):
if n == 0:
return 1
return n * fact(n - 1)Cara Kerja Tumpukan Pemanggilan
Setiap pemanggilan menunggu di tumpukan pemanggilan hingga pemanggilan di dalamnya selesai. Pemanggilan terdalam selesai terlebih dahulu, lalu hasilnya kembali ke tingkat sebelumnya.
Perhatikan Kedalaman Rekursi
Secara bawaan, Python membatasi kedalaman rekursi hingga sekitar 1000. Rekursi yang dalam dalam kontes memerlukan sys.setrecursionlimit agar terhindar dari galat saat eksekusi.
import sys
sys.setrecursionlimit(300000)Buat Kemajuan di Setiap Pemanggilan
Rekursi yang benar selalu memperkecil masukan menuju kasus dasar. Jika masukan kembali memiliki ukuran yang sama, fungsi tersebut akan berulang tanpa akhir. ⚠️
Jumlahkan Daftar Secara Rekursif
Penjumlahan rekursif ini mengambil elemen pertama, lalu mengandalkan pemanggilan tersebut untuk menjumlahkan sisa daftar.
def total(a):
if not a:
return 0
return a[0] + total(a[1:])Pohon Rekursi Menunjukkan Percabangan
Saat sebuah fungsi melakukan lebih dari satu pemanggilan, pekerjaan tersebut membentuk pohon rekursi. Ukurannya menunjukkan total biaya komputasi.
Pekerjaan Berulang Bisa Lambat
Fibonacci naif menghitung ulang nilai yang sama berkali-kali sehingga memerlukan waktu eksponensial. Menyimpan jawaban-jawaban tersebut dalam memo dapat langsung mengatasinya.
Pemeriksaan Singkat
Apa yang terjadi jika fungsi rekursif tidak memiliki kasus dasar?
Rangkuman: Dua Bagian, Satu Gagasan
Anda telah mempelajari bahwa rekursi memerlukan kasus dasar untuk berhenti dan kasus rekursif yang memperkecil masukan. Percayakan proses pada pemanggilan yang lebih kecil, dan sisanya akan mengikuti. 🎯
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Berpikir Rekursif: Basis & Rekursi” gratis?
Ya — teks lengkap “Berpikir Rekursif: Basis & Rekursi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Coding Interview Prep, upgrade ke CoddyKit PRO. Kursus Coding Interview Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Berpikir Rekursif: Basis & Rekursi”?
Memecah soal menjadi salinan yang lebih kecil Kamu berlatih Coding Interview Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Coding Interview Prep?
Tidak diperlukan pengalaman sebelumnya. Coding Interview Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Berpikir Rekursif: Basis & Rekursi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Coding Interview Prep ini?
Ya. Setiap pelajaran Coding Interview Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Berpikir Rekursif: Basis & Rekursi
- Menghasilkan Semua Subset
- Permutasi dan Gagasan N-Queens
- Memangkas untuk Bertahan dari Batas Waktu