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.
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;
}
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