天天看點

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

一、資料結構範疇

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

二、基本概念

  (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)計算機執行指令的速度