Perbezaan Antara Pengulangan Dan Pengulangan

Isi kandungan:

Perbezaan Antara Pengulangan Dan Pengulangan
Perbezaan Antara Pengulangan Dan Pengulangan

Video: Perbezaan Antara Pengulangan Dan Pengulangan

Video: Perbezaan Antara Pengulangan Dan Pengulangan
Video: Kombinasi dengan Pengulangan 2024, September
Anonim

Perbezaan Utama - Pengulangan vs Pengulangan

Rekursi dan Iterasi dapat digunakan untuk menyelesaikan masalah pengaturcaraan. Pendekatan untuk menyelesaikan masalah menggunakan rekursi atau lelaran bergantung pada cara menyelesaikan masalah. Perbezaan utama antara rekursi dan iterasi adalah bahawa rekursi adalah mekanisme untuk memanggil fungsi dalam fungsi yang sama sementara lelaran adalah untuk melaksanakan satu set arahan berulang kali sehingga keadaan yang diberikan benar. Rekursi dan Iterasi adalah teknik utama untuk mengembangkan algoritma dan membina aplikasi perisian.

KANDUNGAN

1. Gambaran Keseluruhan dan Perbezaan Utama

2. Apa itu Pengulangan

3. Apa itu Pengulangan

4. Persamaan Antara Pengulangan dan Pengulangan

5. Perbandingan Berdampingan - Pengulangan vs Pengulangan dalam Borang Jadual

6. Ringkasan

Apakah rekursi?

Apabila fungsi memanggil dirinya dalam fungsi, ia dikenali sebagai Recursion. Terdapat dua jenis rekursi. Mereka adalah pengulangan yang terbatas dan pengulangan yang tidak terbatas. Pemulangan terhingga mempunyai keadaan penamatan. Kekambuhan yang tidak terbatas tidak mempunyai keadaan penamatan.

Pengulangan dapat dijelaskan menggunakan program untuk mengira faktorial.

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

n! = 1, jika n = 0;

Rujuk kod berikut untuk mengira faktorial 3 (3! = 3 * 2 * 1).

antara () {

nilai int = faktorial (3);

printf ("Factorial adalah% d / n", nilai);

pulangan 0;

}

intfactorial (intn) {

jika (n == 0) {

pulangan 1;

}

lain {

pulangan n * faktorial (n-1);

}

}

Apabila memanggil faktorial (3), fungsi itu akan memanggil faktorial (2). Apabila memanggil faktorial (2), fungsi tersebut akan memanggil faktorial (1). Maka faktorial (1) akan memanggil faktorial (0). faktorial (0) akan kembali 1. Dalam program di atas, n == 0 syarat dalam "if block" adalah keadaan asas. Menurut Demikian juga, fungsi faktor dipanggil berulang-ulang kali.

Fungsi rekursif berkaitan dengan timbunan. Dalam C, program utama boleh mempunyai banyak fungsi. Jadi, utama () adalah fungsi memanggil, dan fungsi yang dipanggil oleh program utama adalah fungsi yang disebut. Apabila fungsi dipanggil, kawalan diberikan kepada fungsi yang dipanggil. Setelah pelaksanaan fungsi selesai, kawalan dikembalikan ke utama. Kemudian program utama diteruskan. Oleh itu, ia mencipta rekod pengaktifan atau bingkai tumpukan untuk meneruskan pelaksanaan.

Perbezaan Antara Pengulangan dan Pengulangan
Perbezaan Antara Pengulangan dan Pengulangan

Gambar 01: Kekambuhan

Dalam program di atas, ketika memanggil faktorial (3) dari utama, ia membuat catatan pengaktifan dalam timbunan panggilan. Kemudian, bingkai timbal faktorial (2) dibuat di atas timbunan dan seterusnya. Rekod pengaktifan menyimpan maklumat mengenai pemboleh ubah tempatan dan lain-lain. Setiap kali fungsi dipanggil, satu set pemboleh ubah tempatan baru dibuat di bahagian atas timbunan. Bingkai timbunan ini dapat melambatkan kelajuan. Begitu juga dalam rekursi, fungsi memanggil dirinya sendiri. Kerumitan masa untuk fungsi rekursif dijumpai oleh berapa kali, fungsi tersebut dipanggil. Kerumitan masa untuk satu panggilan fungsi adalah O (1). Untuk bilangan panggilan berulang, kerumitan masa adalah O (n).

Apa itu Pengulangan?

Pengulangan adalah sekatan arahan yang berulang-ulang sehingga keadaan yang diberikan benar. Pengulangan dapat dicapai dengan menggunakan "untuk gelung", "gelung do-while" atau "while loop". Sintaks "untuk gelung" adalah seperti berikut.

untuk (inisialisasi; keadaan; ubah suai) {

// pernyataan;

}

Perbezaan Utama Antara Pengulangan dan Pengulangan
Perbezaan Utama Antara Pengulangan dan Pengulangan

Gambar 02: "untuk gambarajah aliran gelung"

Langkah inisialisasi dijalankan terlebih dahulu. Langkah ini adalah untuk menyatakan dan memulakan pemboleh ubah kawalan gelung. Sekiranya keadaan itu benar, pernyataan di dalam pendakap keriting akan dilaksanakan. Penyataan tersebut dilaksanakan sehingga keadaannya benar. Sekiranya keadaan itu salah, kawalan akan pergi ke pernyataan seterusnya selepas "untuk gelung". Setelah melaksanakan penyataan di dalam gelung, kawalan beralih ke bahagian ubah suai. Ini adalah untuk mengemas kini pemboleh ubah kawalan gelung. Kemudian keadaan diperiksa lagi. Sekiranya keadaan itu benar, penyataan di dalam pendakap kerinting akan dilaksanakan. Dengan cara ini "untuk gelung" berulang.

Dalam "while loop", pernyataan di dalam gelung dilaksanakan sehingga keadaannya benar.

sementara (keadaan) {

// pernyataan

}

Dalam gelung "do-while", keadaan diperiksa di hujung gelung. Jadi, gelung dilaksanakan sekurang-kurangnya sekali.

buat {

// pernyataan

} semasa (keadaan)

Program untuk mencari faktorial dari 3 (3!) Menggunakan lelaran ("untuk gelung") adalah seperti berikut.

int utama () {

intn = 3, faktorial = 1;

inti;

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

faktorial = faktorial * i;

}

printf ("Factorial adalah% d / n", faktorial);

pulangan 0;

}

Apakah Persamaan Antara Pengulangan dan Pengulangan?

  • Kedua-duanya adalah teknik untuk menyelesaikan masalah.
  • Tugas itu dapat diselesaikan sama ada secara berulang atau berulang.

Apakah Perbezaan Antara Pengulangan dan Pengulangan?

Artikel Diff Tengah sebelum Jadual

Pengulangan vs Pengulangan

Recursion adalah kaedah memanggil fungsi dalam fungsi yang sama. Pengulangan adalah sekatan arahan yang berulang sehingga keadaan yang diberikan benar.
Kerumitan Ruang
Kerumitan ruang program rekursif lebih tinggi daripada lelaran. Kerumitan ruang lebih rendah dalam lelaran.
Kepantasan
Pelaksanaan berulang adalah perlahan. Biasanya, lelaran lebih cepat daripada berulang.
Keadaan
Sekiranya tidak ada syarat penamatan, boleh terjadi pengulangan yang tidak terbatas. Sekiranya keadaan tidak pernah menjadi salah, itu akan menjadi lelaran yang tidak terhingga.
Timbunan
Dalam rekursi, tumpukan digunakan untuk menyimpan pemboleh ubah tempatan ketika fungsi dipanggil. Dalam lelaran, timbunan tidak digunakan.
Kebolehbacaan Kod
Program rekursif lebih mudah dibaca. Program berulang lebih sukar dibaca daripada program berulang.

Ringkasan - Pengulangan vs Pengulangan

Artikel ini membincangkan perbezaan antara pengulangan dan lelaran. Kedua-duanya dapat digunakan untuk menyelesaikan masalah pengaturcaraan. Perbezaan antara rekursi dan iterasi adalah bahawa rekursi adalah mekanisme untuk memanggil fungsi dalam fungsi yang sama dan iterasi untuk melaksanakan sekumpulan arahan berulang kali sehingga keadaan yang diberikan benar. Sekiranya masalah dapat diselesaikan dalam bentuk rekursif, ia juga dapat diselesaikan dengan menggunakan lelaran.

Muat turun Versi PDF Pengulangan vs Pengulangan

Anda boleh memuat turun versi PDF artikel ini dan menggunakannya untuk tujuan luar talian seperti dalam catatan petikan. Sila muat turun versi PDF di sini Perbezaan Antara Pengulangan dan Pengulangan

Disyorkan: