資料結構定義:
我們把現實中大量而複雜的問題以特定的資料型別和特定的儲存結構儲存到主儲存器(記憶體)中,
以及在此基礎上為實現某個功能(比如查詢某個元素,刪除某個元素,對所有元素進行排序)而
執行的相應操作,這個相應的操作也叫演算法。
資料結構 = 個體 + 個體的關係
演算法 = 對儲存資料的操作
演算法 解題的方法和步驟
衡量演算法的標準
1.時間複雜度
大概程式要執行的次數,而非執行的時間
2.空間複雜度
演算法執行過程中大概所占用的最大記憶體
3.難易程度
4.健壯性
資料結構的地位
資料結構是軟體中最核心的課程
程式 = 資料的儲存 + 資料的操作 + 可以被計算機執行的語言
其中資料的儲存和資料的操作都是資料結構研究的內容。
演算法時間複雜度:
在進行演算法分析時,語句總的執行次數t(n)是關於問題規模n的函式,
進而分析t(n)隨n的變化情況並確定t(n)的數量級。
演算法時間複雜度,也就是演算法的時間量度,記作:t(n) = o(f(n))
它表示隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸進時間複雜度,
簡稱為時間複雜度。其中f(n)是問題規模n的某個函式。
若有某個輔助函式f(n),使得當n趨近於無窮大時,t(n)/f(n)的極限值為不等於零的常數,則稱f(n)是t(n)的同數量級函式,記作t(n)=o(f(n)),它稱為演算法的漸進時間複雜度,簡稱時間複雜度。
什麼是資料結構和演算法
程式 資料結構 演算法 資料結構是相互之間存在的一種或多種特定關係的資料元素的集合。包括4類基本的結構 集合 線形結構 樹形結構 圖狀或網狀結構。通俗點就是資料的邏輯結構,比方說這些資料在記憶體中以什麼樣的結構存放。演算法實際是程式設計過程中完成一件事採用的方法,比方說現實生活中做數學題時兩個人都將...
資料結構 什麼是演算法?
演算法 algorithm 5大特徵 例1 選擇排序演算法的偽碼描述 list到底是陣列還是鍊錶 雖然看上去像是陣列 swap用函式還是用巨集去實現?空間複雜度s n space 執行時占用儲存單元的長度。這個長度往往與輸入的資料的規模有關,過高可能導致記憶體超限,造成程式中斷。時間複雜度t n t...
什麼是資料結構 演算法
一 什麼是資料結構 資料結構 是指相互之間存在著一種或多種特定關係的資料元素的集合。程式 資料結構 演算法 資料的邏輯結構 指反映資料 元素之間的邏輯關係的 資料結構 其中的邏輯關係是指資料元素之間的前後件關係,而與他們在計算機中的儲存位置無關。資料的物理結構 指資料的 邏輯結構 在計算機儲存空間的...