JavaScript Array sort() 方法 (數(shù)組常用)
數(shù)組常用方法
push() 結尾插入
unshift() 頭部插入
pop() 刪除尾部
splice(index,n,value) index-> 數(shù)組的位置 可以為負數(shù)(從數(shù)組結尾開始數(shù)) n-> 刪除幾個元素 value -> 添加的元素
filter 對數(shù)組中的每一項運行給定函數(shù)况增,返回該函數(shù)會返回 true的項組成的數(shù)組(可用于返回某數(shù)組中所有滿足某個條件的值)
Map
按字母排序
const a = [a,d,b,e,c]
a.sort()
排序時特殊例子
['Micsoft','Null','apple'].sort()
// 輸出順序為 apple 在最后 因為 sort 方法是按ASCII碼進行比較的
[10,20,1,2].sort()
// 輸出的順序為 1,10,2,20 sort將數(shù)字轉化為字符串在進行比較
升序和降序都不能直接使用 sort() 不然會在數(shù)組中有負數(shù)時出錯
升序排列(數(shù)字)
const a = [1,3,-3,-1,6,4,2]
a.sort((a,b) => a-b )
降序排列(數(shù)字)
const a = [1,3,-3,-1,6,4,2]
a.sort((a,b) => b-a )
逆序
const a = [1,3,-3,-1,6,4,2]
a.reverse()
數(shù)組合并
const a = [1,3,-3,-1,6,4,2]
const b = [9,7,-4,-8]
const c = a.concat(b)
拓補排序(有向無環(huán)圖)
看到題中有依賴關系時 -> 拓撲排序
拓撲排序問題步驟
- 根據(jù)依賴關系棒搜,構建鄰接表慕趴、入度數(shù)組。
- 選取入度為 0 的數(shù)據(jù)绰姻,根據(jù)鄰接表,減小依賴它的數(shù)據(jù)的入度召噩。
- 找出入度變?yōu)?0 的數(shù)據(jù)立帖,重復第 2 步。
- 直至所有數(shù)據(jù)的入度為 0碍现,得到排序幅疼,如果還有數(shù)據(jù)的入度不為 0,說明圖中存在環(huán)
二分法 (縮小查找范圍)
一般定義三個變量
const left = 0
const right = "數(shù)組或鏈表長度"
const n = Math.floor(left + (right-left)/2)
while (left < right) {
// 判斷 直至 left == right
}