前端中經常出現的演算法總結

2021-08-17 17:07:04 字數 2109 閱讀 1413

雖說我們很多時候前端很少有機會接觸到演算法,但對演算法的理解和掌握是乙個優秀工程師的評價標準之一,而且當我們面對較為複雜的問題,這些基礎知識的積累可以幫助我們更好的優化解決思路。在一段時間的學習之後,我總結羅列了前端中常見見的幾個演算法:

一:排序演算法

排序演算法是比較開發的演算法之一,方法種類較多,在此列舉兩種簡單的排序演算法:氣泡排序和快速排序。氣泡排序其實就是通過比較相鄰位置的元素大小,如果左邊比右邊大,就交換位置,繼續比較,實際上就是每輪比較都得出乙個最大值(或者最小值)。然後通過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 ...