資料(data) :是客觀事物的符號表示。在電腦科學中指的是所有能輸入到計算機中並被電腦程式處理的符號的總稱。
資料元素(data element) :是資料的基本單位,在程式中通常作為乙個整體來進行考慮和處理。
資料結構(data structure):是指相互之間具有(存在)一定聯絡(關係)的資料元素的集合。元素之間的相互聯絡(關係)稱為邏輯結構。資料元素之間的邏輯結構有四種基本型別:
資料結構在計算機記憶體中的儲存包括資料元素的儲存和元素之間的關係的表示。元素之間的關係在計算機中有兩種不同的表示方法:
順序表示和非順序表示
由此得出兩種不同的儲存結構:
順序儲存結構和鏈式儲存結構。
順序結構:資料元素存放的位址是連續的;
鏈式結構:資料元素存放的位址是否連續沒有要求。
資料的邏輯結構和物理結構是密不可分的兩個方面,乙個演算法的設計取決於所選定的邏輯結構,而演算法的實現依賴於所採用的儲存結構。
在c語言中,用一維陣列表示順序儲存結構;用結構體型別表示鏈式儲存結構。
演算法(algorithm):是對特定問題求解方法(步驟)的一種描述,是指令的有限序列,其中每一條指令表示乙個
或多個操作。
演算法具有以下五個特性
① 有窮性: 乙個演算法必須總是在執行有窮步之後結束,且每一步都在有窮時間內完成。
② 確定性:演算法中每一條指令必須有確切的含義。不存在二義性。且演算法只有乙個入口和乙個出口。
③ 可行性: 乙個演算法是能行的。即演算法描述的操作都可以通過已經實現的基本運算執行有限次來實現。
④ 輸輸入入: 乙個演算法有零個或多個輸入,這些輸入取自於某個特定的物件集合。
⑤ 輸出: 乙個演算法有乙個或多個輸出,這些輸出是同輸入有著某些特定關係的量。
時間複雜度
定義概念什麼的也就不說了,就只是單純的提供乙個分析時間複雜度的方法
1.確定迴圈的終止條件
2.確定迴圈變數的遞增或者遞減方式
3.假設,假設執行了t次,跳出了迴圈
4.將t帶入迴圈的終止條件
個人感覺挺好用的,至於是否通用也不敢確定,因程式而異,也因人而異,
void fun(int n)
迴圈的終止條件:i <= n;
迴圈變數的遞增方式:i= i*2;
假設執行了t次跳出迴圈 1*2*2*2.......
將t代入第一步:1*2^t <= n
解得:t<=logn(以2為底)
以下六種計算演算法時間的多項式是最常用的。其關係為:
o(1)指數時間的關係為:
o(2^n)空間複雜度(space complexity) :是指演算法編寫成程式後,在計算機中執行時所需儲存空間大小的度量。記作: s(n)=o(f(n)) ; 其中: n為問題的規模(或大小)
該儲存空間一般包括三個方面:
指令常數變數所占用的儲存空間;
輸入資料所占用的儲存空間;
輔助(儲存)空間。 一般地,演算法的空間複雜度指的是輔助空間。
一維陣列a[n]: 空間複雜度 o(n)
二維陣列a[n][m]: 空間複雜度 o(n*m)
緒論 資料結構和演算法01
什麼是資料結構?資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作等相關問題的學科。資料結構事實上就是這樣子 程式設計 資料結構 演算法 再簡單的來說資料結構就是關係,沒錯,就是資料元素相互之間存在的一種或多種特定關係的集合。傳統上,我們把資料結構分為邏輯結構和物理結構...
資料結構 資料結構緒論
資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...
資料結構 緒論
程式 資料結構 演算法 資料 對客觀事物的符號表示。資料元素 資料的基本單位,由若干個資料項組成。資料項是資料不可分割的最小單位。資料物件 性質相同的資料元素的集合,使資料的乙個子集。資料元素是相互之間存在一種或多種特定關係的資料元素的集合。預定義常量型別 函式結果狀態嗎 define true 1...