前端常見算法平常總結

數組排序算法

  • 冒泡排序
概述:兩個for嵌套循環,每一項都要與其餘任意一項對比排序。
時間複雜度: O(n^2)
空間複雜度: O(n^2)
適用範圍: 簡短的數組排序,穩定
  • 選擇排序
概述:從後續未排序的序列中查詢最大值與以前排序好的序列中末尾調換。
時間複雜度: O(n^2)
空間複雜度: O(n^2)
適用範圍:簡短的數組排序,穩定,不佔用空間
  • 插入排序
概述: 選擇初始排序點,從未排序數組中循環推出序列點並根據排序點組成的有序數組進行插入排序。
時間複雜度: O(n~n^2)
空間複雜度: O(n)
適用範圍:排序順序基本完成的數組
  • shell排序
概述:根據漸進簡短的間隔進行分割數組排序,直至間隔爲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算法
相關文章
相關標籤/搜索