色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript中常用算法

姚詩涵1年前7瀏覽0評論
在javascript中,常用算法是我們開發(fā)者必備的知識之一。算法的作用可以幫助我們解決各種復雜的問題。下面我將介紹一些常用算法并舉例說明其用法。 1. 階乘算法 階乘算法是計算階乘的一種方法,它的定義是n的階乘等于n乘以(n-1)乘以(n-2)……一直乘到1。通過使用遞歸函數(shù)可以求得n的階乘。
function factorial(n){
if(n == 0){
return 1;
}
else{
return n * factorial(n-1);
}
}

例如,我們想求5的階乘,使用factorial(5)即可。輸出結(jié)果為120。

2. 冒泡排序算法 冒泡排序算法是一種比較簡單的排序方法。它重復遍歷待排序的序列,每次遍歷比較相鄰的兩個元素,如果他們的順序不正確就交換位置。這樣一次遍歷會讓最大的元素沉到最底下,
function bubbleSort(arr){
var len = arr.length;
for(var i = 0; i < len-1; i++){
for(var j = 0; j < len-i-1; j++){
if(arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}

例如,如果我們傳入一個數(shù)組[1, 5, 2, 11, 7],輸出結(jié)果就會是[1, 2, 5, 7, 11]。

3. 快速排序算法 快速排序算法是一種比較常用的排序算法,它的原理是選擇一個元素作為基準值,然后將比它小的放在它的左側(cè),比它大的放在它的右側(cè),然后再對基準值的左右兩部分分別重復這個操作。
function quickSort(arr){
if(arr.length <= 1){
return arr;
}
var pivot = arr[0];
var left = [];
var right = [];
for(var i = 1; i < arr.length; i++){
if(arr[i] < pivot){
left.push(arr[i]);
}
else{
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
}

例如,如果我們傳入一個數(shù)組[1, 5, 2, 11, 7],輸出結(jié)果就會是[1, 2, 5, 7, 11]。

4. 斐波那契數(shù)列算法 斐波那契數(shù)列指的是一個數(shù)列,該數(shù)列的前兩項為0和1,后面每一項都是前兩項之和。使用遞歸函數(shù)可以求得斐波那契數(shù)列的第n項。
function fibonacci(n){
if(n == 0){
return 0;
}
if(n == 1 || n == 2){
return 1;
}
else{
return fibonacci(n - 1) + fibonacci(n - 2);
}
}

例如,我們想求斐波那契數(shù)列的第6項,使用fibonacci(6)即可。輸出結(jié)果為8。

以上就是javascript中常用的一些算法,除此之外還有很多算法可以使用。學習這些算法可以幫助我們更好地編寫高效的代碼。