還記得這個經典公式嗎? 算法
程序=數據結構+算法 數組
可見數據結構和算法對於程序的重要性。基於此博主寫了數據結構與算法系列隨筆。下面先給出數據結構與算法的思惟導圖。數據結構
數據結構定義:數據結構和算法
數據結構是一種存儲和組織數據的方式,以便於訪問和修改。數據結構包括數據的邏輯結構、數據的存儲結構以及數據的運算,即按照某種邏輯關係組織起來的一批數據,按必定的映射方式把它存放在計算機的存儲器中,並在這些數據上定義了一個運算的集合。函數
算法定義:設計
計算機求解一個問題所需的一系列步驟對象
算法的基本特性:blog
算法設計的要求:索引
時間複雜度:get
程序大概的執行次數(不是執行時間)。通常狀況下,算法中基本操做重複執行的次數是問題規模n的某個函數,用T(n)表示,如有某個輔助函數f(n),使得當n趨近於無窮大時,T(n)/f(n)的極限值爲不等於零的常數,則稱f(n)是T(n)的同數量級函數。記做T(n)=O(f(n)),稱O(f(n)) 爲算法的漸進時間複雜度,簡稱時間複雜度
空間複雜度:
該算法所耗費的存儲空間,它也是問題規模n的函數。其是對一個算法在運行過程當中臨時佔用存儲空間大小的量度。一個算法在計算機存儲器上所佔用的存儲空間,包括存儲算法自己所佔用的存儲空間,算法的輸入輸出數據所佔用的存儲空間和算法在運行過程當中臨時佔用的存儲空間這三個方面。