前端常見算法平常總結
數組排序算法
概述:兩個for嵌套循環,每一項都要與其餘任意一項對比排序。
時間複雜度:
O(n^2)
空間複雜度:
O(n^2)
適用範圍: 簡短的數組排序,穩定
概述:從後續未排序的序列中查詢最大值與以前排序好的序列中末尾調換。
時間複雜度:
O(n^2)
空間複雜度:
O(n^2)
適用範圍:簡短的數組排序,穩定,不佔用空間
概述: 選擇初始排序點,從未排序數組中循環推出序列點並根據排序點組成的有序數組進行插入排序。
時間複雜度:
O(n~n^2)
空間複雜度:
O(n)
適用範圍:排序順序基本完成的數組
概述:根據漸進簡短的間隔進行分割數組排序,直至間隔爲1則排序完成。通常取值在 五、二、1的順序。
時間複雜度:
O(n~n^1.3~n^2)
空間複雜度:
O(n~n^2)
適用範圍: 較長的數組混亂無規則o..的排序
概述:將數組分爲若干個子數組進行排序,而後子數組進行兩兩循環歸併排序。
時間複雜度:O(nlog2n)
空間複雜度:O(n)
適用範圍: 較長數組
概述:持續從數組中選取基點進行左右部分區間的排序,直至子序列無基點選終止循環。
時間複雜度: O(nlogn ~ n^2)
空間複雜度:O(logn ~ n)
適用範圍: 較長無序數組,絕大部分數組均可適用,效率相對最高
擴展算法
- 堆排序算法
- 二分查找算法
- BFPRT算法
- DFS(深度優先搜索)
- BFS(廣度優先搜索)
- Dijkstra算法
- 動態規劃算法
- 樸素貝葉斯分類算法
- 回溯法
- Diff算法
歡迎關注本站公眾號,獲取更多信息