Rumah > Artikel > hujung hadapan web > Apakah kaedah pelaksanaan algoritma rekursif dalam JavaScript
Algoritma rekursif ialah idea algoritma biasa Dengan memanggil fungsi rekursif, masalah boleh diuraikan dan diselesaikan. Dalam JavaScript, pelaksanaan fungsi rekursif adalah sangat mudah Anda hanya perlu memberi perhatian kepada susunan panggilan fungsi dan syarat keluar.
Seterusnya, kami akan memperkenalkan kaedah pelaksanaan algoritma rekursif dalam JavaScript melalui contoh.
Contoh 1: Cari nilai sebutan ke-n bagi jujukan Fibonacci
Jujukan Fibonacci merujuk kepada: 0, 1, 1, 2, 3, 5, 8, 13 , 21, 34, ..., iaitu, item pertama ialah 0, item kedua ialah 1, dan setiap item berikutnya ialah jumlah dua item sebelumnya. Yang berikut menggunakan algoritma rekursif untuk mencari nilai item ke-n bagi jujukan Fibonacci:
function fibonacci(n) { if(n <= 1) { return n; } else { return fibonacci(n-1) + fibonacci(n-2); } }
Dalam kod di atas, mula-mula tentukan sama ada n ialah 1 atau 0. Jika ya, kembalikan n dirinya sebagai rekursi keadaan eksport. Jika n bukan 1 atau 0, pecahkan masalah untuk menyelesaikan jumlah dua item pertama, dan panggil fungsinya sendiri secara rekursif sehingga keadaan keluar dicapai.
Contoh 2: Masalah Menara Hanoi
Masalah Menara Hanoi ialah masalah rekursif klasik Masalahnya diterangkan seperti berikut: Terdapat tiga tiang, dan beberapa saiz diletakkan salah satu daripadanya. Sekarang anda perlu mengalihkan cakera ini ke tiang lain Semasa pergerakan, anda mesti meletakkan cakera yang lebih kecil pada satu tiang di atas cakera yang lebih besar, dan hanya satu cakera boleh dialihkan pada satu masa. Saya ingin bertanya, apabila syarat bergerak dipenuhi, berapa banyak pergerakan yang diperlukan untuk memindahkan semua cakera ke tiang lain?
Berikut ialah pelaksanaan algoritma rekursif untuk masalah Menara Hanoi:
function hannuo(n, A, B, C) { if(n === 1) { console.log(`将第${n}个圆盘从${A}移动到${C}`); } else { hannuo(n-1, A, C, B); console.log(`将第${n}个圆盘从${A}移动到${C}`); hannuo(n-1, B, A, C); } }
Antaranya, n mewakili bilangan cakera, A, B, dan C mewakili tiga tiang masing-masing. Peranan fungsi rekursif hannuo Ia adalah untuk memindahkan n cakera dari bahagian bawah A ke bahagian bawah C, dan bahagian bawah B perlu digunakan di tengah Semasa proses rekursif, adalah perlu untuk berterusan selesaikan sub-masalah skala yang dikurangkan sehingga rekursi mencapai masalah terkecil: memindahkan cakera pertama dari A Move ke C. Keputusan akhir ialah memanggil hannuo(n, 'A', 'B', 'C') untuk menyelesaikan dan mengeluarkan langkah-langkah bergerak.
Algoritma rekursif boleh membantu kami menyelesaikan beberapa masalah yang rumit, tetapi kami juga perlu berhati-hati untuk mengelakkan rekursi tak terhingga, jadi kami mesti berhati-hati semasa menulis kod.
Atas ialah kandungan terperinci Apakah kaedah pelaksanaan algoritma rekursif dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!