演算法是程式的靈魂,乙個優秀的前端工程師對演算法也是要有所了解的。
排序演算法
1. 氣泡排序
//氣泡排序2. 快速排序function bubblesort(arr)}}
}
//快速排序字串操作function quicksort(arr,l,r) else
}while(left[il])
while(right[ir])
return result;
}
1. 判斷回文字串
function palindrome(str)2. 翻轉字串
思路1:反向遍歷字串
function reversestring(str)思路2:轉化成array操作
function reversestring2(str)陣列操作var charobj = {};
for(var i = 0; i < str.length; i++) else
}var maxchar = '',
maxvalue = 1;
for(var k in charobj)
}return maxchar + ':' + maxvalue;
}
1. 陣列去重
利用object中的key的唯一性,利用key來進行篩選
function unique(arr)2. number陣列中最大差值var data =
for(var i in arr)
}return data;
}
function getmaxprofit(arr)其他常見演算法return max - min;
}
1. 階乘
//1. 非遞迴實現2. 生成斐波那契數列function factorialize(num)
//2. 遞迴實現
function factorialize(num)
}
斐波拉契:又稱**分割數列,值得是乙個數列:0、1、2、3、5、8、13、21、34….,在數學上,斐波拉契數列主要考察遞迴的呼叫。
2.1 強行遞迴實現
function getfib(n)3. 二分查詢}function fibo(len) else
i++;
}return fibarr;
}
二分查詢:是在有序陣列中用的比較頻繁的一種演算法,優點是比較次數少,查詢速度快、平均效能好;缺點是要求待查表為有序,且插入刪除困難
3.1 非遞迴實現
function binary_search(arr, key) else if(key > arr[mid])else if(key < arr[mid])3.2 遞迴實現}return -1;
};
function binary_search2(arr, low, high, key)
前端常見演算法JS實現
演算法是程式的靈魂,乙個優秀的前端工程師對演算法也是要有所了解的。排序演算法 1.氣泡排序 氣泡排序 function bubblesort arr 2.快速排序 快速排序 function quicksort arr,l,r arr i x quicksort arr,l,i 1 quicksor...
前端常見演算法 js
不管是在實際專案中還是在面試的時候我們大都會碰到演算法問題,比如排序啊,比較大小啊之類的這些最基本的演算法。我總結了一些,以後在碰到在慢慢補充。1.排序問題 1.1氣泡排序 氣泡排序演算法就是依次比較大小,小的的大的進行位置上的交換。var example 8 95,34 21,53 12 func...
常見排序演算法 JS實現
氣泡排序 bubblesort 每輪排序選出乙個最小或最大的元素再乙個個插入陣列 選擇排序 selectionsort this swap min,i 從未排序元素中挑出乙個元素挨個跟區域性有序的元素進行比較,找到對應位置插入即可 插入排序 insertsort this array j temp ...