1. 程式人生 > >資料結構01 緒論

資料結構01 緒論

  資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作等相關問題的學科。
1.1 基本概念和術語
  資料:是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。(包括整型、實型等用於數值計算的數值型別,還包括聲音、影象、視訊等可以通過編碼的手段變成字元資料來處理的非數值型別。)
  資料元素:是組成資料的、有一定意義的基本單位,在計算機中通常作為整體處理。也被稱為記錄。
  資料項:一個數據元素可以由若干個資料項組成。資料項是不可分割的最小單位。而真正討論問題時資料結構中建立資料模型的主要研究物件是資料元素。
  資料物件:是性質相同(具有相同數量和型別的資料項)的資料元素的集合,是資料的子集。在實際應用中,處理的資料元素通常具有相同性質,在不產生混淆的情況下,將資料物件簡稱為資料。
  資料結構:不同資料元素之間不是獨立的,而是存在特定的關係,這些關係就稱為結構。資料結構是指相互之間存在的一種或多種特定關係的資料元素的集合。

1.2 邏輯結構和物理結構
1.2.1 邏輯結構
  ① 集合機構:集合結構中的元素除了同屬一個集合外,它們之間沒有其他關係。 ② 線性結構:線性結構中的資料元素之間是一對一的關係。
  ③ 樹形結構:樹形結構中的資料元素之間存在一種一對多的層次關係。    ④圖形結構:圖形結構的資料元素是多對多的關係。
 集合結構 線性結構 這裡寫圖片描述 這裡寫圖片描述
 
  注意: 每個資料元素看作一個結點,用圓圈表示。元素之間的邏輯關係用結點之間的連線表示,如果這個關係是有方向的那麼用帶箭頭的連線表示。

1.2.2 物理結構
  物理結構是指資料的邏輯結構在計算機中的儲存形式,也叫儲存結構。
  ① 順序儲存結構:把資料元素放在地址連續的儲存單元裡,其資料間的邏輯關係和物理關係是一致的。
             這裡寫圖片描述


  
  ② 鏈式儲存結構:把資料元素存放在任意的儲存單元裡,這組儲存單元可以是連續的,也可以是不連續的。通過指標存放的地址找到相關聯資料元素的位置。
                  這裡寫圖片描述
  
   邏輯結構是面向問題的,物理結構是面向計算機的,其基本的目標就是將資料及其邏輯關係儲存到計算機的記憶體中。

1.3 抽象資料型別
1.3.1 資料型別
  資料型別是指一組性質相同的值的集合及定義在此集合上的一些操作的總稱。總共分為兩類:① 原子型別:是不可再分解的基本型別,包括整型、實型、字元型等。 ②結構型別:由若干個型別組合而成,是可以再分解的。例如,整形陣列是由若干整形資料組成的。

1.3.2 抽象資料型別
  抽象資料型別:是指一個數學模型及定義在該模型上的一組操作。

2 演算法
2.1 基本知識
  演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示一個或多個操作。
  演算法的五個基本特性:輸入、輸出、有窮性、確定性和可行性。
  演算法設計的要求:正確性、可讀性、健壯性、時間效率高和儲存量低。
  
2.2 演算法時間複雜度
  推導大O階:
 ① 用常數1取代執行時間中的所有加法常數。
 ② 在修改後的執行次數函式中,只保留最高階項。
 ③ 如果最高階項存在且不是1,則去除與這個項相乘的常數。

     這裡寫圖片描述
 
 常用的時間複雜度所耗費的時間從小到大依次是:
 這裡寫圖片描述