Rumah hujung hadapan web tutorial js JavaScript的递归与循环性能对比代码分析

JavaScript的递归与循环性能对比代码分析

Jul 26, 2017 pm 05:40 PM
javascript js kontras

性能方面,递归不比循环有优势。除了多次函数调用的开销,在某些情况下,递归还会带来不必要的重复计算。以计算斐波那契数列的递归程序为例。求第n项A(n)时,从第n-2项起,每一项都被重复计算。项数越小,重复的次数越多。令B(i)为第i项被计算的次数,则有 

B(i)=1; i=n, n-1 

B(i)=B(i+1)+B(i+2); i
这样,B(i)形成了一个有趣的逆的斐波那契数列。求A(n)时有:

B(i)=A(n+1-i)

换一个角度来看,令C(i)为求A(i)时需要的加法的次数,则有

C(i)=0; i=0, 1

C(i)=1+C(i-1)+C(i-1); i>1 

令D(i)=C(i)+1,有 

D(i)=1; i=0, 1 

D(i)=D(i-1)+D(i-1) 

所以D(i)又形成一个斐波那契数列。并可因此得出: 

C(n)=A(n+1)-1 

而A(n)是以几何级数增长,这种多余的重复在n较大时会变得十分惊人。与之相对应的采用循环的程序,有 

B(n)=1; n为任意值 

C(n)=0; n=0, 1 

C(n)=n-1; n>1 

因而当n较大时,前面给出的采用循环的程序会比采用递归的程序快很多。 

如循环一样,递归中的这个缺陷也是可以弥补的。我们只需要记住已经计算出来的项,求较高项时,就可以直接读取以前的项。这种技术在递归中很普遍,被称为“存储”(memorization)。 

下面是采用存储技术的求斐波那契数列的递归算法。 

//recursion with memorization 
function fibonacci4(n){ 
var memory = []; //used to store each calculated item 
function calc(n){ 
var result, p, q; 
if (n < 2) { 
memory[n] = n; 
return n; 
} 
else { 
p = memory[n - 1] ? memory[n - 1] : calc(n - 1); 
q = memory[n - 2] ? memory[n - 2] : calc(n - 2); 
result = p + q; 
memory[n] = result; 
return result; 
} 
} 
return calc(n); 
}
Salin selepas log masuk

Atas ialah kandungan terperinci JavaScript的递归与循环性能对比代码分析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbandingan mendalam: Vivox100 atau Vivox100Pro, yang manakah lebih berbaloi untuk dibeli? Perbandingan mendalam: Vivox100 atau Vivox100Pro, yang manakah lebih berbaloi untuk dibeli? Mar 22, 2024 pm 02:06 PM

Dalam pasaran telefon pintar hari ini, pengguna berhadapan dengan lebih banyak pilihan. Dengan perkembangan teknologi yang berterusan, pengeluar telefon mudah alih telah melancarkan lebih banyak model dan gaya, antaranya Vivox100 dan Vivox100Pro sudah pasti dua produk yang telah menarik perhatian ramai. Kedua-dua telefon bimbit ini datang daripada jenama terkenal Vivox, tetapi ia mempunyai perbezaan tertentu dalam fungsi, prestasi dan harga Jadi apabila berdepan dengan dua telefon bimbit ini, yang mana satu lebih berbaloi untuk dibeli? Terdapat perbezaan yang jelas dalam reka bentuk penampilan antara Vivox100 dan Vivox100Pro

Mana satu lebih berpotensi, syiling SOL atau syiling BCH? Apakah perbezaan antara syiling SOL dan syiling BCH? Mana satu lebih berpotensi, syiling SOL atau syiling BCH? Apakah perbezaan antara syiling SOL dan syiling BCH? Apr 25, 2024 am 09:07 AM

Pada masa ini, syiling berpotensi yang digemari oleh bulatan mata wang termasuk syiling SOL dan syiling BCH adalah token asli platform blok Solana BCH ialah token projek BitcoinCash, yang merupakan mata wang fork Bitcoin. Oleh kerana mereka mempunyai ciri teknikal, senario aplikasi dan hala tuju pembangunan yang berbeza, adalah sukar bagi pelabur untuk membuat pilihan antara kedua-duanya. Saya ingin menganalisis yang mana satu lebih berpotensi, mata wang SOL atau BCH? Melabur lagi. Walau bagaimanapun, perbandingan mata wang memerlukan analisis komprehensif berdasarkan pasaran, prospek pembangunan, kekuatan projek, dll. Seterusnya, editor akan memberitahu anda secara terperinci. Mana satu lebih berpotensi, syiling SOL atau BCH? Sebagai perbandingan, syiling SOL mempunyai lebih banyak potensi Menentukan yang mana satu lebih berpotensi, syiling SOL atau BCH, adalah isu yang rumit kerana ia bergantung kepada banyak faktor.

Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Mar 28, 2024 am 09:00 AM

Perbandingan prestasi Windows 10 vs. Windows 11: Mana satu yang lebih baik? Dengan pembangunan dan kemajuan teknologi yang berterusan, sistem pengendalian sentiasa dikemas kini dan dinaik taraf. Sebagai salah satu pembangun sistem pengendalian terbesar di dunia, siri sistem pengendalian Microsoft Windows sentiasa menarik perhatian ramai pengguna. Pada tahun 2021, Microsoft mengeluarkan sistem pengendalian Windows 11, yang mencetuskan perbincangan dan perhatian yang meluas. Jadi, apakah perbezaan prestasi antara Windows 10 dan Windows 11?

Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Apr 03, 2024 am 11:55 AM

Teknologi pengesanan dan pengecaman muka adalah teknologi yang agak matang dan digunakan secara meluas. Pada masa ini, bahasa aplikasi Internet yang paling banyak digunakan ialah JS Melaksanakan pengesanan muka dan pengecaman pada bahagian hadapan Web mempunyai kelebihan dan kekurangan berbanding dengan pengecaman muka bahagian belakang. Kelebihan termasuk mengurangkan interaksi rangkaian dan pengecaman masa nyata, yang sangat memendekkan masa menunggu pengguna dan meningkatkan pengalaman pengguna termasuk: terhad oleh saiz model, ketepatannya juga terhad. Bagaimana untuk menggunakan js untuk melaksanakan pengesanan muka di web? Untuk melaksanakan pengecaman muka di Web, anda perlu biasa dengan bahasa dan teknologi pengaturcaraan yang berkaitan, seperti JavaScript, HTML, CSS, WebRTC, dll. Pada masa yang sama, anda juga perlu menguasai visi komputer yang berkaitan dan teknologi kecerdasan buatan. Perlu diingat bahawa kerana reka bentuk bahagian Web

Perbandingan kotak TV Huawei, ZTE, Tmall dan Xiaomi Perbandingan kotak TV Huawei, ZTE, Tmall dan Xiaomi Feb 02, 2024 pm 04:42 PM

Kotak TV, sebagai peranti penting yang menghubungkan Internet dan TV, telah menjadi semakin popular sejak beberapa tahun kebelakangan ini. Dengan populariti TV pintar, pengguna semakin menggemari jenama kotak TV seperti Tmall, Xiaomi, ZTE dan Huawei. Untuk membantu pembaca memilih kotak TV yang paling sesuai untuk mereka, artikel ini akan memberikan perbandingan yang mendalam tentang ciri dan kelebihan empat kotak TV ini. 1. Huawei TV Box: Pengalaman audio-visual pintar adalah sangat baik dan boleh memberikan pengalaman tontonan yang lancar Huawei TV Box mempunyai pemproses yang berkuasa dan kualiti gambar definisi tinggi. Seperti video dalam talian, dan aplikasi kaya terbina dalam, muzik dan permainan, dsb., ia menyokong pelbagai format audio dan video. Kotak TV Huawei juga mempunyai fungsi kawalan suara, yang menjadikan operasi lebih mudah. Anda boleh menghantar kandungan pada telefon mudah alih anda ke skrin TV dengan mudah

Penilaian perbandingan Vivox100 dan Vivox100Pro: Mana satu yang anda lebih suka? Penilaian perbandingan Vivox100 dan Vivox100Pro: Mana satu yang anda lebih suka? Mar 22, 2024 pm 02:33 PM

Penilaian perbandingan Vivox100 dan Vivox100Pro: Mana satu yang anda lebih suka? Memandangkan telefon pintar terus menjadi lebih popular dan lebih berkuasa, permintaan orang ramai terhadap aksesori telefon bimbit juga semakin meningkat. Sebagai bahagian penting dalam aksesori telefon mudah alih, fon kepala memainkan peranan penting dalam kehidupan dan pekerjaan harian orang ramai. Di antara banyak jenama fon kepala, Vivox100 dan Vivox100Pro adalah dua produk yang telah menarik perhatian ramai. Hari ini, kami akan menjalankan penilaian perbandingan terperinci kedua-dua fon kepala ini untuk melihat kelebihan dan kekurangannya

Perbandingan prestasi dan kelebihan dan kekurangan bahasa Go dan bahasa pengaturcaraan lain Perbandingan prestasi dan kelebihan dan kekurangan bahasa Go dan bahasa pengaturcaraan lain Mar 07, 2024 pm 12:54 PM

Tajuk: Perbandingan prestasi, kelebihan dan kekurangan bahasa Go dan bahasa pengaturcaraan lain Dengan perkembangan teknologi komputer yang berterusan, pilihan bahasa pengaturcaraan menjadi semakin kritikal, antaranya prestasi menjadi pertimbangan penting. Artikel ini akan mengambil bahasa Go sebagai contoh untuk membandingkan prestasinya dengan bahasa pengaturcaraan biasa yang lain dan menganalisis kelebihan dan kekurangan masing-masing. 1. Gambaran Keseluruhan Bahasa Go Bahasa Go ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google Ia mempunyai ciri-ciri penyusunan pantas, keselarasan yang cekap, ringkas dan mudah dibaca Ia sesuai untuk pembangunan perkhidmatan rangkaian, sistem pengedaran, pengkomputeran awan dan bidang lain. Pergi

Apakah tahap kad grafik yang setara dengan 4060? Apakah tahap kad grafik yang setara dengan 4060? Feb 18, 2024 am 10:40 AM

Tahap apakah yang setara dengan kad grafik 4060 Dengan kemajuan teknologi yang berterusan dan pengemaskinian pesat peralatan elektronik, teknologi kad grafik juga sentiasa berkembang dan berkembang. Dalam bidang komputer, kad grafik bukan sahaja merupakan bahagian penting dalam permainan dan fail multimedia, tetapi juga memainkan peranan penting dalam pemprosesan grafik, penyuntingan video dan reka bentuk profesional. Oleh itu, adalah penting untuk memilih kad grafik yang sesuai dengan keperluan dan prestasi anda. Dalam beberapa tahun kebelakangan ini, NVIDIA telah menjadi salah satu jenama kad grafik yang paling popular di pasaran, dengan rangkaian produk yang komprehensif meliputi banyak tahap prestasi yang berbeza. Dan 4060

See all articles