常用小演算法

2021-09-10 12:59:40 字數 1333 閱讀 6247

// 排序從小到大

let a = [5,3,12,16,2,35,4]

a.foreach((i,index) =>

})});

console.log(a);

// 輸出 [2, 3, 4, 5, 12, 16, 35]

// 從大到小

a.foreach((i,index) =>

});});console.log(a);

// 輸出[35, 16, 12, 5, 4, 3, 2]

思路:已 5,3,12,16,2,35,4 為例 第乙個和第二個比較 如果第乙個大於二個 那麼交換位置 然後第乙個在和第三個比較 以此類推比較。 一輪下來最小的就會排在最前頭。第二輪在那第二個和第三個比較....。第二輪就會把第二小的排在第二位...(index1 > index 判斷了只會和下乙個進行比較)

第一種

const list = [,,,

,,,]

const listtree =

recursion = (arr,data) =>

})}list.foreach((json,i) =>

})

第二種

const list = [,,,

,,,]

recursion = (arr, pid)=>

} });

return list1;

}const listtree = recursion(list)

// 合計次數並通過出現的次數排序

let a = [5,3,12,16,2,35,4,5,6,3,4,6,7,8,6,3,4,5,6,7,9,1,2,4,5,8,3,4,6,7,8,5,4,3,2,9];

// 作為出現的次數json組,格式[.......]

const list = ;

//先計算出每個數字出現的次數

a.foreach((number) =>

});if (on) ;

list.push(json);

}});

console.log(list);

// 根據frequency進行正序排序

list.foreach((json,index) =>

})});

console.log(list);

// 根據frequency進行倒敘序排序

list.foreach((json,index) =>

})});

console.log(list);

演算法小討論

舉例說 假設你們班級有30個人,假設按照成績高低已經把試卷排列好了,你想找出數學成績在75分的人。第一種辦法,就是簡單的順次查詢,找到就退出。複雜度o n 第二種辦法,把試卷分兩羅,大概在中間那張如果小於75分,就把上邊的再分兩羅再執行上邊步驟,按照這個辦法找到為止。每次輸入範圍是上次的一半,遞迴,...

演算法小技巧

bool pdn int x if num x return true else return false 1.普通方法 o sqrt n bool isprime int x 2.線性篩 o n 適用於範圍不是特別大,查詢次數多的 const int maxn 1e6 6 int flag max...

演算法小練習

連續輸入字串,請按長度為8拆分每個字串後輸出到新的字串陣列 長度不是8整數倍的字串請在後面補數字0,空字串不處理。解題思路 迴圈從鍵盤輸入,對於每個字串首先判斷長度是否大於8,如果是大於8的,計算是8的幾倍,以8個切片放到乙個陣列。再看下是否有餘數,因為餘數要用0補齊8位,放到陣列。如果字串的長度小...