前端常見演算法JS實現

2021-08-15 14:16:34 字數 1673 閱讀 2990

演算法是程式的靈魂,乙個優秀的前端工程師對演算法也是要有所了解的。

排序演算法

1. 氣泡排序

//氣泡排序

function bubblesort(arr)}}

}

2. 快速排序

//快速排序

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)

var data =

for(var i in arr)

}return data;

}

2. number陣列中最大差值

function getmaxprofit(arr)

return max - min;

}

其他常見演算法

1. 階乘

//1. 非遞迴實現

function factorialize(num)

//2. 遞迴實現

function factorialize(num)

}

2. 生成斐波那契數列

斐波拉契:又稱**分割數列,值得是乙個數列:0、1、2、3、5、8、13、21、34….,在數學上,斐波拉契數列主要考察遞迴的呼叫。

2.1 強行遞迴實現

function getfib(n)

}function fibo(len) else

i++;

}return fibarr;

}

3. 二分查詢

二分查詢:是在有序陣列中用的比較頻繁的一種演算法,優點是比較次數少,查詢速度快、平均效能好;缺點是要求待查表為有序,且插入刪除困難

3.1 非遞迴實現

function binary_search(arr, key) else if(key > arr[mid])else if(key < arr[mid])

}return -1;

};

3.2 遞迴實現

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 ...