JS演算法總結

2021-09-08 17:59:06 字數 1064 閱讀 8848

1、選擇排序:

var arr = [3,6,7,2,6,4,1,6,8,24,12,53];

function

sort(arr)

var min = arr[0],index = 0;

for(var i=0;i)

}//刪除最小值

var prev = arr.splice(index,1);

//通過遞迴,將這一輪中的最小值合併下一輪的最小值,直到arr的length為1停止遞迴。

return

prev.concat(sort(arr));

}console.log(sort(arr));

原理分析:

1、獲取當前陣列中最小的那個值。

2、獲取最小值的分析:隨便從陣列中拿出乙個值,把這個拿出來的值當做最小值,然後和後面的值比較,如果後面的值比這個當前的值還小,那麼我們把拿出來的那個值賦值成那個更小的值。

3、儲存那個最小值的索引,因為我們需要刪除這個最小值,好獲取下一輪第二小的值,不然下一輪的最小值還是這個值。

4、刪除陣列中的最小值。

5、因為一次只能獲取乙個最小值,所以我們需要通過遞迴,不斷地重複呼叫它。

在前面的一篇文章中我還寫給另外個兩種排序演算法,如果你對演算法感興趣的話可以看看js陣列氣泡排序,快速排序的原理以及實現這篇文章。

2、陣列去重:

var arr = [3,6,7,2,5,5,6,4,1,6,8,24,12,53];

function

sort(arr);

var t =;

for(var i=0;i)

}returnt;}

console.log(sort(arr));

原理分析:

1、建立乙個空物件和乙個空陣列,空物件用來過濾陣列中相同的值,而空陣列用來儲存過濾以後的值。

2、迴圈判斷這個空物件的值是否和陣列中的值一樣,如果一樣就不理會,如果這個物件中沒有這個值就新增,並且把這個值新增到我們建立的陣列中。

JS演算法總結

1 選擇排序 var arr 3,6,7,2,6,4,1,6,8,24,12,53 function sort arr var min arr 0 index 0 for var i 0 i 刪除最小值 var prev arr.splice index,1 通過遞迴,將這一輪中的最小值合併下一輪的...

js 常用演算法總結

1 判斷乙個單詞是否是回文?回文是指把相同的詞彙或句子,在下文中調換位置或顛倒過來,產生首尾回環的情趣,叫做回文,也叫回環。比如 mamam redivider 很多人拿到這樣的題目非常容易想到用for 將字串顛倒字母順序然後匹配就行了。其實重要的考察的就是對於reverse的實現。其實我們可以利用...

js學習總結 常見的演算法

一 遞迴 當前函式自己呼叫自己執行 實現1 100之間,把所有不能被三整除的數相加 這種型別的問題首先想到的是遞迴 function sum if n 3 0 return n sum n 1 從1 10把所有能被二整除的進行相乘 function fn n if n 2 0 return n fn...