1. 程式人生 > >資料結構課上筆記2

資料結構課上筆記2

今天繼續說明了一些基本概念,講解了時間空間複雜度。

(對於概念的掌握也很最重要)

元素之間的關係在計算機中有兩種表示方法:順序映像和非順序映像,由此得到兩種不同的

儲存結構:順序儲存結構和鏈式儲存結構。

順序:根據元素在儲存器中的相對位置表示關係

鏈式:藉助指標表示關係

資料型別:是一個值的集合和定義在這個值集上的一組操作的總稱。

抽象資料型別:是指一個數學模型以及定義在該模型上的一組操作。(僅僅取決於邏輯特性,與其在計算機內部如何表示和實現無關)

定義抽象資料型別的一種格式:

ADT name{

資料物件:<>

資料關係:<>

基本操作:<>

}ADT name

演算法:是對特定問題求解步驟的一種描述。

演算法五個特性:

  1. 有窮性:有窮的時間內完成,或者可以說是可接受的時間完成
  2. 確定性:對於相同的輸入只能得到相同的輸出
  3. 可行性:描述的操作都可以執行基本操作有限次來實現
  4. 輸入:零個或多個輸入。取自於某個特定物件的集合
  5. 輸出:一個或多個輸出

設計要求:正確性、可讀性、健壯性、效率與低儲存量需求。

演算法效率度量:時間空間複雜度

這個,暑假講課的時候寫了總結,這裡就不再寫了吧。

老師上課是借氣泡排序來引入的這些知識,暑假寫了排序總結,結合排序來體會複雜度:

程式碼是以去年拿python寫的,不對的地方請指出

理解了這節課的概念應該就能看動態規劃入門了