1. 程式人生 > >資料結構及演算法學習(一)

資料結構及演算法學習(一)

一、資料結構範疇

  資料結構是一門與程式設計密切相關的課程,而程式設計就是演算法+資料結構,演算法即是處理資料的策略,而資料結構就是表達程式設計的模型,可以說任何一個程式設計問題,我們都可以從演算法和模型出發。概而言之,資料結構就是描述了程式設計的數學模型及在其程式設計上的表示和實現。

二、基本概念

  (1)資料:是計算機處理資訊的載體,是其某種特定的符合表達形式的集合,它的定義範疇會隨著計算機的發展而不斷擴大,最初的資料範疇是數字,而現在發展到圖片、音訊、視訊等多種形式。而其的每個個體叫資料元素。而每個個體又可以有多種表達形式表示,我們稱為資料項,資料項是資料結構的最小單位。

  (2)資料結構:是一個帶有結構的資料元素的集合。也就是說給任何一組資料元素加上了一定規則的結構,我們即可稱為資料結構。

  (3)資料的邏輯結構

    1、線性結構

    2、樹形結構

    3、網狀結構

    4、集合結構

  (4)資料的儲存結構(指邏輯結構在儲存器的映像)

      關係的映像方法

      1、順序映像,兩個相鄰的資料元素的儲存位置相差一個常量

      2、鏈式映像,用指標表示後續關係,每個元素包含了自身資訊還有指向後續元素的指標資訊

  (5)抽象資料型別(ADT)

     ADT的兩個重要特徵:

    1、資料的抽象性,用ADT描述程式處理的實體時,只強調器實體的本質特徵和完成的功能及它和外部使用者的介面

    2、資料的封裝性,將實體的外部傳值特徵和內部實現的具體細節分離,實現了內部的細節的封裝性。

三、演算法及其衡量

  演算法是為了解決某類問題而進行的一個有限長的操作序列,其五大特徵:有窮性(步驟和時間的有限性)、確定性(對處理的問題有明確的範疇規定)、可行性(可以在有限次實現)、有輸入、有輸出。

    1、演算法設計原則

  (1)正確性(滿足需解決問題的需求、不含語法錯誤)

  (2)可讀性(易於人的理解)

  (3)健壯性(對非法操作做出溫和處理)

  (4)高效率與低儲存量需求

  2、演算法衡量的方法和準則

   (1)事後統計法(2)事前分析估演算法(優於第一種)

  3、演算法執行時間的相關因素

  (1)選用的策略  (2)問題的規模  (3)程式語言  (4)編譯機器產生的可執行程式碼的質量  (5)計算機執行指令的速度