算法(Algorithm)是指在有限的時間范圍內,為解決某一問題而采取的方法和步驟的準確完整的描述,它是一個有窮的規則序列,這些規則決定了解決某一特定問題的一系列運算
一個算法應該具備以下特征。
1. 有窮性一個算法應包含有限個操作步驟,即一個算法在執行若干個操作步驟之后應該能夠結束,并且每一步都要在合理時間內完成。
2. 確定性算法中的每一個步驟必須有確切的含義,無二義性,在任何情況下,對于相同的輸入只能得出相同的輸出
3. 可行性算法中的每一個步驟都應該能夠通過已經實現的基本運算的有限次執行得以實現。
4. 輸入輸入指的是在算法執行時,從外界取得必要的數據。一個算法可以有一個或一個以上的輸入,也可以沒有輸入。
5. 輸出數據結構輸出指的是算法對輸入數據處理后的結果。一個算法可以有一個或一個以上的輸出,沒有輸出的算法是無意義的
- 基礎
- 數據
- 數據元素
- 數據結構
- 集合結構
- 線性結構
- 樹型結構
- 圖狀結構
- 數據存儲結構
- 算法定義
- 算法效率度量
- 算法效率分析
- 時間復雜度
- O(1)
- O(n)
- O(n2)
- O(logn)
- 空間復雜度
- 線性表
- 數組
- 鏈表
- 串矩陣和廣義表
- 串
- 矩陣
- 廣義表
- 棧和隊列
- 棧
- 隊列
- 樹和二叉樹
- 二叉樹
- 滿二叉樹
- 完全二叉樹
- 哈夫曼樹
- 二叉查找樹-BST樹
- AVL樹
- 紅黑樹
- B樹
- B+樹
- 字典樹
- 跳表
- 算法
- 排序算法
- 冒泡排序
- 選擇排序
- 快速排序
- 插入排序
- 希爾排序
- 歸并排序
- 堆排序
- 基數排序
- 計數排序
- 桶排序
- 查找算法
- 二分查找算法
- Hash算法
- 一致性hash算法
- 算法題
- 001-用兩個棧實現隊列
- 002-只使用棧和遞歸逆序一個棧
- 附錄
- SkipList跳表