js十大經典演算法關鍵點總結

2022-05-13 15:17:26 字數 1896 閱讀 2099

1,氣泡排序:兩輪for迴圈,第一輪控制總對比次數,第二輪相鄰元素對比,符合條件則交換

2,選擇排序:兩輪for迴圈,第一輪控制交換,即第二輪獲得的最小值與當前迴圈起點元素交換,第二輪就是從拿第一輪迴圈最後的值與後面的值

開始比較,符合條件則將下標交換,最後獲得當前一輪最小值下標,執行第一輪。

3,翻轉字串:

str.split("").reverse().join("")

4,計算乙個整數的階乘,

function

factorialize(num){}

if(num < 1)

else

5,如果給定的字串是回文,返回true,反之,返回false。

stra = str.replace(/[^0-9a-za-z]/g, '').tolowercase()

strb = stra.splice('').reverse().join('')

if(stra ===strb)

else

6, 找到提供的句子中最長的單詞,並計算它的長度。

function

findlongestword(str) )

let maxlength = arrb[0].length

return

maxlength

}

7、確保字串的每個單詞首字母都大寫,其餘部分小寫。

function

titlecase(str)

return

strarr

}

8、右邊大陣列中包含了4個小陣列,分別找到每個小陣列中的最大值,然後把它們串聯起來,形成乙個新陣列。

function

largestoffour(arr))

arrb.push(arra[n][0])

}return

arrb;

}

largestoffour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

9, 判斷字串是否以指定字串結尾

function

confirmending(str, target)

else

}

function

confirmending2(str, target)

else

}

10、重複乙個指定的字串 num次,如果num是乙個負數則返回乙個空字串。

function

repeat(str, num)

else

return

str }

}

11 截斷乙個字串!

如果字串的長度比指定的引數num長,則把多餘的部分用...來表示。

切記,插入到字串尾部的三個點號也會計入字串的長度。

但是,如果指定的引數num小於或等於3,則新增的三個點號不會計入字串的長度。

function

truncate(str, num)

else

}else

}

function

truncate2(str, num)

else

}else

}

12,把乙個陣列arr按照指定的陣列大小size分割成若干個陣列塊

function

chunk(arr, size)

return

arra

}

十大經典排序演算法

載自 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序 快速排...

十大經典排序演算法

不穩定排序種類為4種 快速排序 核心思想是partition操作 二分法分而治之 平均時間複雜度nlogn 希爾排序 高階版的插入排序,先把間隔較遠的子串行排序,最後間隔為1時,等同於插入排序 插入排序在序列有序時,時間複雜度常數級,所以先讓子串行總體有序,能有效降低時間複雜度 平均時間複雜度n 1...

十大經典排序演算法

常見經典排序 非線性時間比較類排序 通過比較來決定元素間的相對次序,由於其時間複雜度不能突破o nlogn 因此稱為非線性時間比較類排序。線性時間非比較類排序 不通過比較來決定元素間的相對次序,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間非比較類排序。時間複雜度 空間複雜度 穩...