menyerupai yang sudah aku bahas pada postingan sebelumnya mengenai rekursif, kali ini aku akan membahas perbedaan antara rekursif vs iterasi.
perbedaan rekursif vs iterasi
rekursif yakni fungsi yang memanggil dirinya sendiri, rekursif memakai pernyataan pilihan (if, if...else, switch). sedangkan iterasi yakni proses pengulangan dengan memakai perintah perulangan (for, while, dan do...while). iterasi dan rekursif memasukkan unsur perulangan :
iterasi memakai perintah pengulangan secara eksplisit, sedangkan rekursif memasukkan pengulangan melalui pemanggilan fungsi secara berulang.
iterasi dan rekursif memasukkan tes penghentian : penghentian iterasi pada kondisi looping yang bernilai salah. sedangkan penghentian rekursif pada ketika kondisi dasarnya terpenuhi.
iterasi dengan pengulangan yang dikendalikan oleh counter dan rekursif secara bertahapmendekati penghentian : iterasi terus memodifikasi counter hingga counter mengasumsikan nilai yang menciptakan kondisi loop berikutnya gagal. rekursif terus memanggil dirinya sendiri memakai persoalan yang ada, hingga keadaan dasar tercapai.
baik pada iterasi maupun rekursif dapa terjadi kondisi perulangan yang tidak berhenti : kondisi loop tidak berhenti pada iterasi terjadi pada ketika tes kondisi lanjut atau tidaknya perulangan idak pernah salah. sedangkan kondisi loop tidak berhenti pada rekursif bila langah rekursif tidak mengulangimasalah pada setiap pemanggilan fungsi itu sendiri, sehingga keadaan dasar tidak pernah tercapai.
rekursif memiliki banyak nilai negaif. rekursif memiliki prosedur pemanggilan method berulang, dan konsekoensinya terjadi overhead. prosedur ini juga akan menghipnotis kerja sisem alasannya yakni mengambil waktu dari prosesor dan ruang dari memori kompuer. setiap pemanggilan rekursif berarti copy dari method dibentuk (kenyataannya hanya variabel method), serangkaian copy ini sanggup memakan daerah di memory. ierasi terjadi dalammehod, sehingga pemanggilan mehod dan suplemen memori sanggup di cegah.
mengapa memakai rekursif?? software engineering yang elok yakni pening. dalam banyak kasus unjuk kerja yang tinggi menjadi prioritas utama. behkan meskipun harus di bayar dengan harga tinggi, alasannya yakni membutuhkan hardware yang besar dan handal. dan rekursif memiliki performa yang baik dan inggi untuk digunakan.
Sumber http://www.sharingse.net/