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