Perbedaan Kunci: Dalam pemrograman, rekursi dapat dijelaskan dengan mempertimbangkan fungsi rekursif. Fungsi rekursif adalah fungsi yang memanggil dirinya lagi untuk mengulang kode. Di sisi lain, iterasi dicapai dengan fungsi berulang yang berulang untuk mengulangi beberapa bagian dari kode.
Dalam pemrograman, rekursi dan iterasi keduanya digunakan untuk mencapai pengulangan. Mereka merujuk pada proses yang diulang berkali-kali. Rekursi didasarkan pada pendekatan di mana sesuatu merujuk pada dirinya sendiri sampai suatu kondisi terpenuhi. Suatu metode dikatakan rekursif jika ia dapat memanggil dirinya secara langsung atau tidak langsung seperti -
{
... nama () ...
}
atau
nama kosong ()
{
... permainan () ...
}
void game () {
... nama () ...
}
Untuk rekursi yang berhasil, kita harus ingat bahwa setiap panggilan yang dibuat dalam proses rekursi harus menyederhanakan perhitungan. Rekursi dicapai dengan mendefinisikan kasus dasar.
int factorial (int N)
{
jika (N == 0) mengembalikan 1;
lain kembali (N * faktorial (N-1));
}
Dalam contoh ini, rekursi dapat dengan mudah dilihat dalam pernyataan (N * faktorial (N-1)), di mana ia memanggil fungsi faktorial lagi. Rekursi sangat membantu karena membantu dalam pemendekan kode. Namun, rekursi ini agak lambat dalam kinerja.
function factorial (n)
{
var loop, hasil;
hasil = 1;
untuk (loop = 1; loop <= n; loop ++)
{
hasil = hasil * lingkaran;
}
hasil pengembalian;
}
Dalam contoh ini, perulangan dicapai dengan menggunakan bilangan bulat dari 1 ke n, dan pernyataan loop <= n digunakan sebagai kriteria untuk menghentikan perulangan lebih lanjut. Dengan demikian, kita dapat menyimpulkan bahwa hasil yang sama dapat dicapai dengan menggunakan rekursi dan iterasi. Namun, keduanya didasarkan pada pendekatan yang sedikit berbeda. Algoritma rekursif apa pun juga dapat ditulis menggunakan iterasi (loop).
Perbandingan antara Rekursi dan Iterasi:
Rekursi | Perulangan | |
Definisi | Rekursi mengacu pada fungsi rekursif di mana ia memanggil dirinya lagi untuk mengulang kode. | Iterasi dicapai oleh fungsi berulang yang berulang untuk mengulangi beberapa bagian dari kode. |
Poin penting | Kasus dasar perlu ditentukan | Kondisi pemutusan hubungan kerja perlu ditentukan |
Performa | Relatif lambat | Relatif cepat |
Penggunaan Memori | Secara relatif lebih banyak | Relatif lebih sedikit |
Kode | Lebih kecil | Lebih lama |
Pengulangan tanpa batas | Rekursi tak terbatas mampu menabrak sistem | Infinite looping mengkonsumsi siklus CPU berulang kali |
Struktur | Pilihan | Pengulangan |
Variabel lokal | Tidak dibutuhkan | Wajib |