雖說我們很多時候前端很少有機會接觸到演算法,但對演算法的理解和掌握是乙個優秀工程師的評價標準之一,而且當我們面對較為複雜的問題,這些基礎知識的積累可以幫助我們更好的優化解決思路。在一段時間的學習之後,我總結羅列了前端中常見見的幾個演算法:
一:排序演算法
排序演算法是比較開發的演算法之一,方法種類較多,在此列舉兩種簡單的排序演算法:氣泡排序和快速排序。氣泡排序其實就是通過比較相鄰位置的元素大小,如果左邊比右邊大,就交換位置,繼續比較,實際上就是每輪比較都得出乙個最大值(或者最小值)。然後通過n-1輪比較,就能得出乙個排好序的序列(通過設定乙個flag,當陣列基本有序的時候其實不一定需要比較到n-1輪)。
function bubblesort(arr)}}
return arr;
}快速排序簡單來講就是我們選定乙個數,然後比它小的都放在它左邊,大於等於它的都放在它右邊,那麼這個時候對這個數來講他的位置已經排到了正確的地方了,接下來要做的就是在它的左右兩邊分別再進行類似操作。
function quicksort(arr,l,r)
if(i
arr=arr[j];
}while(i
i++;
}if(i
arr[j]=arr;}}
arr=x;
//遞迴呼叫
quicksort(arr,i+1,r);
quicksort(arr,l,i-1);
}return arr;
}二:階乘演算法
function factorialize(num) else if (num === 0 || num === 1) else
}return result;
}三:回文字串判斷
如果乙個字串忽略標點符號、大小寫和空格,正著讀和反著讀一模一樣,那麼這個字串就是palindrome(回文)。
function palindrome(str)
// 如果字串的第乙個和最後乙個字元不相同,那麼字串就不是palindrome
if (lowregstr[0] !== lowregstr[lowregstr.length - 1]) else
}四:翻轉字串演算法
function reversestring(str)
return tmp;
} 第二種翻轉字串演算法:
function reversestring(s)
return arr.join('');
}五:整型陣列去重演算法
主要考察程式設計師對object的使用,利用key來進行篩選。
function unique(arr)
var hashtable = {};
var data = ;
for(var i = 0, l = arr.length; i < l; i++)
}return data;
}六:陣列中最大差值
function getmaxprofit(arr)
return maxprofit;
}七:隨機指定長度字串
function randomstring(n)
return tmp;
}八:統計字串中次數最多字母
function findmaxduplicatechar(str)
var charobj = {};
for(var i = 0; i < str.length; i++) else
}var maxchar = '',
maxvalue = 1;
for(var k in charobj)
}return maxchar;
}九:生成菲波那切數列陣列
斐波那契數列,又稱**分割數列,指的是這樣乙個數列:0、1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列主要考察遞迴的呼叫。通過定義fibo= fibo[i-1]+fibo[i-2];來生成斐波那契陣列。
function getfibonacci(n) else
i++;
}return fibarr;
}以上幾個前端中經常會出現的小演算法是學習中的練習和總結,整理此文如果有錯誤希望小夥伴們積極指正,有更好更簡潔的演算法知識也希望不吝分享,以求共同進步。
前端中經常出現的演算法總結
雖說我們很多時候前端很少有機會接觸到演算法,但對演算法的理解和掌握是乙個優秀工程師的評價標準之一,而且當我們面對較為複雜的問題,這些基礎知識的積累可以幫助我們更好的優化解決思路。在一段時間的學習之後,我總結羅列了前端中常見見的幾個演算法 一 排序演算法 排序演算法是比較開發的演算法之一,方法種類較多...
面試中經常出現的演算法
面試中經常出現的演算法 面試中經常出現的演算法 2010 09 21 09 01 分類 面試題二分查詢的 int bfind int a,int len,int val else if a m val else return m return 1 沒有找到 寫出在母串中查詢子串出現次數的 int c...
面試中經常出現的演算法1(整理)
二分查詢的 int bfind int a,int len,int val else if a m val else return m return 1 沒有找到 寫出在母串中查詢子串出現次數的 int count1 char str,char s if s2 0 count str return ...