0Pricing
Competitive Programming Academy · Pelajaran

Berpikir Rekursif: Basis & Rekursi

Memecah soal menjadi salinan yang lebih kecil

Berpikir Rekursif: Basis & Rekursi adalah pelajaran Competitive Programming Academy 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 Competitive Programming Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Competitive Programming Academy 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 Competitive Programming Academy, upgrade ke CoddyKit PRO. Kursus Competitive Programming Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Berpikir Rekursif: Basis & Rekursi”?

Memecah soal menjadi salinan yang lebih kecil Kamu berlatih Competitive Programming Academy 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 Competitive Programming Academy?

Tidak diperlukan pengalaman sebelumnya. Competitive Programming Academy 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 Competitive Programming Academy ini?

Ya. Setiap pelajaran Competitive Programming Academy 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

  1. Berpikir Rekursif: Basis & Rekursi
  2. Menghasilkan Semua Subset
  3. Permutasi dan Gagasan N-Queens
  4. Memangkas untuk Bertahan dari Batas Waktu
← Kembali ke Competitive Programming Academy