Perbedaan Antara Rekursi Dan Iterasi

Daftar Isi:

Perbedaan Antara Rekursi Dan Iterasi
Perbedaan Antara Rekursi Dan Iterasi
Anonim

Perbedaan Kunci - Rekursi vs Iterasi

Rekursi dan Iterasi dapat digunakan untuk memecahkan masalah pemrograman. Pendekatan untuk memecahkan masalah menggunakan rekursi atau iterasi bergantung pada cara untuk menyelesaikan masalah tersebut. Perbedaan utama antara rekursi dan iterasi adalah bahwa rekursi adalah mekanisme untuk memanggil fungsi dalam fungsi yang sama sementara iterasi adalah untuk mengeksekusi sekumpulan instruksi berulang kali hingga kondisi yang diberikan benar. Rekursi dan Iterasi adalah teknik utama untuk mengembangkan algoritma dan membangun aplikasi perangkat lunak.

ISI

1. Gambaran Umum dan Perbedaan Utama

2. Apa itu Rekursi

3. Apa itu Iterasi

4. Persamaan Antara Rekursi dan Iterasi

5. Perbandingan Berdampingan - Rekursi vs Iterasi dalam Bentuk Tabular

6. Ringkasan

Apa itu Rekursi?

Ketika suatu fungsi memanggil dirinya sendiri di dalam fungsi tersebut, itu disebut sebagai Rekursi. Ada dua jenis rekursi. Mereka adalah rekursi terbatas dan rekursi tak terbatas. Rekursi hingga memiliki kondisi penghentian. Rekursi tak terbatas tidak memiliki kondisi penghentian.

Rekursi dapat dijelaskan menggunakan program untuk menghitung faktorial.

n! = n * (n-1) !, jika n> 0

n! = 1, jika n = 0;

Lihat kode di bawah ini untuk menghitung faktorial 3 (3! = 3 * 2 * 1).

intmain () {

nilai int = faktorial (3);

printf (“Faktorial adalah% d / n”, nilai);

kembali 0;

}

intfactorial (intn) {

jika (n == 0) {

kembali 1;

}

lain {

mengembalikan n * faktorial (n-1);

}

}

Saat memanggil faktorial (3), fungsi itu akan memanggil faktorial (2). Saat memanggil faktorial (2), fungsi itu akan memanggil faktorial (1). Maka faktorial (1) akan memanggil faktorial (0). faktorial (0) akan menghasilkan 1. Pada program di atas, n == 0 kondisi pada “blok if” adalah kondisi dasar. Menurut Demikian juga, fungsi faktorial dipanggil berulang kali.

Fungsi rekursif terkait dengan tumpukan. Di C, program utama bisa memiliki banyak fungsi. Jadi main () adalah fungsi pemanggil, dan fungsi yang dipanggil oleh program utama disebut fungsi. Ketika fungsi dipanggil, kontrol diberikan ke fungsi yang dipanggil. Setelah eksekusi fungsi selesai, kontrol dikembalikan ke main. Kemudian program utama berlanjut. Jadi, ini membuat catatan aktivasi atau bingkai tumpukan untuk melanjutkan eksekusi.

Perbedaan Antara Rekursi dan Iterasi
Perbedaan Antara Rekursi dan Iterasi

Gambar 01: Rekursi

Dalam program di atas, saat memanggil faktorial (3) dari main, ini membuat catatan aktivasi dalam tumpukan panggilan. Kemudian, bingkai tumpukan faktorial (2) dibuat di atas tumpukan dan seterusnya. Catatan aktivasi menyimpan informasi tentang variabel lokal dll. Setiap kali fungsi dipanggil, satu set variabel lokal baru dibuat di bagian atas tumpukan. Bingkai tumpukan ini dapat memperlambat kecepatan. Demikian juga dalam rekursi, suatu fungsi memanggil dirinya sendiri. Kompleksitas waktu untuk fungsi rekursif ditemukan oleh berapa kali fungsi tersebut dipanggil. Kompleksitas waktu untuk satu pemanggilan fungsi adalah O (1). Untuk n jumlah panggilan rekursif, kompleksitas waktunya adalah O (n).

Apa itu Iterasi?

Iterasi adalah sekumpulan instruksi yang diulang terus menerus sampai kondisi yang diberikan benar. Iterasi dapat dilakukan dengan menggunakan "for loop", "do-while loop" atau "while loop". Sintaks “for loop” adalah sebagai berikut.

for (inisialisasi; kondisi; modifikasi) {

// pernyataan;

}

Perbedaan Utama Antara Rekursi dan Iterasi
Perbedaan Utama Antara Rekursi dan Iterasi

Gambar 02: "untuk diagram alir loop"

Langkah inisialisasi dijalankan terlebih dahulu. Langkah ini untuk mendeklarasikan dan menginisialisasi variabel kontrol loop. Jika kondisinya benar, pernyataan di dalam tanda kurung kurawal akan dijalankan. Pernyataan tersebut dijalankan hingga kondisinya benar. Jika kondisinya salah, kontrol menuju ke pernyataan berikutnya setelah "for loop". Setelah menjalankan pernyataan di dalam loop, kontrol beralih ke bagian modifikasi. Ini untuk memperbarui variabel kontrol loop. Kemudian kondisinya dicek kembali. Jika kondisinya benar, pernyataan di dalam kurung kurawal akan dijalankan. Dengan cara ini "loop for" melakukan iterasi.

Dalam "while loop", pernyataan di dalam loop dijalankan sampai kondisinya benar.

while (kondisi) {

// pernyataan

}

Dalam loop "do-while", kondisi diperiksa di akhir loop. Jadi, loop dijalankan setidaknya sekali.

melakukan{

// pernyataan

} sementara (kondisi)

Program untuk mencari faktorial dari 3 (3!) Menggunakan iterasi (“for loop”) adalah sebagai berikut.

int main () {

intn = 3, faktorial = 1;

inti;

untuk (i = 1; i <= n; i ++) {

faktorial = faktorial * i;

}

printf (“Faktorial adalah% d / n”, faktorial);

kembali 0;

}

Apa Persamaan Antara Rekursi dan Iterasi?

  • Keduanya adalah teknik untuk memecahkan suatu masalah.
  • Tugas dapat diselesaikan baik dalam rekursi atau iterasi.

Apa Perbedaan Antara Rekursi dan Iterasi?

Artikel Diff Tengah sebelum Tabel

Rekursi vs Iterasi

Rekursi adalah metode memanggil suatu fungsi dalam fungsi yang sama. Iterasi adalah sekumpulan instruksi yang diulangi sampai kondisi yang diberikan benar.
Kompleksitas Ruang
Kompleksitas ruang program rekursif lebih tinggi dari iterasi. Kompleksitas ruang lebih rendah dalam iterasi.
Kecepatan
Eksekusi rekursi lambat. Biasanya, iterasi lebih cepat daripada rekursi.
Kondisi
Jika tidak ada kondisi penghentian, mungkin ada rekursi tak terbatas. Jika kondisinya tidak pernah salah, itu akan menjadi iterasi yang tak terbatas.
Tumpukan
Dalam rekursi, tumpukan digunakan untuk menyimpan variabel lokal saat fungsi dipanggil. Dalam sebuah iterasi, tumpukan tidak digunakan.
Keterbacaan Kode
Program rekursif lebih mudah dibaca. Program iteratif lebih sulit untuk dibaca daripada program rekursif.

Ringkasan - Rekursi vs Iterasi

Artikel ini membahas perbedaan antara rekursi dan iterasi. Keduanya dapat digunakan untuk memecahkan masalah pemrograman. Perbedaan antara rekursi dan iterasi adalah bahwa rekursi adalah mekanisme untuk memanggil suatu fungsi dalam fungsi yang sama dan melakukan iterasi untuk mengeksekusi sekumpulan instruksi berulang kali hingga kondisi yang diberikan benar. Jika suatu masalah dapat diselesaikan dalam bentuk rekursif, masalah tersebut juga dapat diselesaikan dengan menggunakan iterasi.

Unduh Rekursi vs Iterasi Versi PDF

Anda dapat mengunduh versi PDF dari artikel ini dan menggunakannya untuk tujuan offline sesuai catatan kutipan. Silahkan download versi PDF disini Perbedaan Antara Rekursi dan Iterasi

Direkomendasikan: