數(shù)據結構之緒論

1. 什么是數(shù)據結構

  • 計算機解決一個具體的問題,大致需要以下三個步驟:
  • 具體問題抽象出一個適當數(shù)據模型
  • 設計一個解此數(shù)據模型的算法
  • 編出程序
  • 尋求數(shù)據模型的實質就是:==分析問題==蹋绽,從中提取操作的對象芭毙,并找出這些操作對象之間含有的關系,然后用數(shù)學語言加以描述

2. 基本概念和術語

  • 數(shù)據(data)是對客觀事物的符號表示卸耘,在計算機科學中是指所有能輸入到計算機中并被計算機程序處理的符號的總稱(如:圖像退敦、聲音都是可以通過編碼而歸之于數(shù)據的范疇)

  • 數(shù)據元素(data element)是數(shù)據的基本單元,在計算機程序中蚣抗,通常作為一個整體進行考慮和處理侈百。

  • 數(shù)據對象(data object)是性質相同的數(shù)據元素的集合,是數(shù)據的一個子集

  • 數(shù)據結構 (data structure)是相互之間存在一種或多種特定的數(shù)據元素的集合翰铡。在任何問題中钝域,數(shù)據元素都不是孤立存在的,而是在他們之間存在著某種關系锭魔,這種數(shù)據元素之間的關系稱為結構(structure)

  • 根據數(shù)據元素之間關系的不同特性例证,分為4種基本結構

    • 集合:結構中的數(shù)據元素之間除了“同屬于一個集合”的關系外,別無其他關系
    • 線性關系:結構中的數(shù)據元素之間存在一個對一個的關系
    • 樹形結構:結構中的數(shù)據元素之間存在一個對多個的關系
    • 圖狀結構或網狀結構 結構中的數(shù)據元素之間存在多個對多個的關系
  • 數(shù)據結構的形式定義:數(shù)據結構是一個二元組Data_Structure=(D,S) 其中D是元素的有限集迷捧,S是D上關系的有限集织咧。結構定義中的“關系”描述的是數(shù)據元素之間的邏輯結構,因此稱為數(shù)據的邏輯結構漠秋。

  • 數(shù)據結構在計算機中的表示(又稱映像)稱為數(shù)據的物理結構笙蒙,即存儲結構,它包括數(shù)據元素的表示和關系的表示庆锦。數(shù)據元素之間的關系在計算機中有兩種不同的表示方法捅位,分別為:順序映像和非順序映像,并由此得到兩種不同的存儲結構:順序存儲結構和鏈式存儲結構。

    • 順序映像的特點是:借助元素在存儲器中相對位置來表示數(shù)據元素之間的邏輯關系
    • 非順序映像特點是:借助指示元素存儲的指針來表示數(shù)據元素之間的邏輯關系
    • 任何一個算法的設計取決于選定的選定的數(shù)據邏輯結構绿渣,而算法的實現(xiàn)卻依賴于采用的存儲結構
  • 數(shù)據類型:是一個值的集合和定義在這個值集上的一組操作的總稱朝群。例如:c語言中的整型變量,其值集為某個區(qū)間上的整數(shù)中符,定義在其上的操作為加姜胖、減、乘淀散、除和取模等算術運算

  • 抽象數(shù)據類型(Abstract Data Type簡稱ADT):是指一個數(shù)據模型以及定義在該模型上的一組操作

    • 抽象數(shù)據類型可用以下三元組表示(D右莱,S,T)其中D是數(shù)據對象 S是D上的關系集档插,P是對D的基本操作慢蜓。可采用一下格式定義抽象數(shù)據類型:

      ADT 抽象數(shù)據類型名 {
      數(shù)據對象:(數(shù)據對象的定義)
      數(shù)據關系:(數(shù)據關系的定義)
      基本操作:(基本操作的定義)
      }ADT 抽象數(shù)據類型名

3. 算法和算法分析

  • 算法(algorithm)是對特定問題求解步驟的一種描述郭膛,它是指令的有限序列晨抡,其中每一條指令表示一個或多個操作。算法有5個重要特征

    • 有窮性:一個算法必須總是在執(zhí)行有窮步之后結束则剃,且每一步都可在有窮時間內完成
    • 確定性:算法中每一條指令必須有確切的含義耘柱,讀者理解是不會產生二義,并且棍现,在任何條件下调煎,算法只有唯一的一條執(zhí)行路徑,即對于相同的輸入只能得出相同的輸出
    • 可行性:一個算法是可行的己肮,即算法中描述的操作都是可以通過已經實現(xiàn)的基本運算執(zhí)行有限此來實現(xiàn)士袄。
    • 輸入:一個算法有0個或多個的輸入,這些輸入取自于某個特定的對象集合
    • 輸出:一個算法有1個或多個輸出谎僻,這些輸出是同輸入有著某些特定關系的量
  • 算法設計的要求:通常設計一個好的算法應考慮達到以下目標:

    • 正確性(correctness):程序對于一切合法的輸入數(shù)據都能產生滿足規(guī)格說明要求的結果
    • 可讀性(readability): 算法主要是為了人的閱讀和交流娄柳,其次才是機器執(zhí)行,可讀性好有助于人對算法的理解艘绍,晦澀難懂的程序易于隱藏較多錯誤西土,難以調試和修改
    • 健壯性(robustness):當輸入數(shù)據非法時,算法也能適當?shù)淖鞒龇磻蜻M行處理鞍盗,而不會產生莫名其妙的輸出結果
    • 效率與低存儲量需求:存儲量需求指算法執(zhí)行過程中所需要的最大存儲空間。效率指的的算法的執(zhí)行時間跳昼。這兩者都與問題的的規(guī)模有關般甲。
  • 算法效率的度量:時間復雜度

一般情況下,算法中基本操作重復執(zhí)行的次數(shù)是問題規(guī)模n的某個函數(shù)f(n),算法的時間度量計作:T(n)=O(f(n))鹅颊。它表示隨問題規(guī)模n的增大敷存,算法執(zhí)行時間的增長率和f(n)的增長率相同,稱做算法的漸進時間復雜度(asymptotic time complexiy)簡稱時間復雜度

  • 算法的存儲空間需求:類似與算法的時間復雜度,空間復雜度(space complexity)作為算法所需存儲空間的量度锚烦,記作: S(n)=O(f(n))
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末觅闽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涮俄,更是在濱河造成了極大的恐慌蛉拙,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彻亲,死亡現(xiàn)場離奇詭異孕锄,居然都是意外死亡,警方通過查閱死者的電腦和手機苞尝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門畸肆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宙址,你說我怎么就攤上這事轴脐。” “怎么了抡砂?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵大咱,是天一觀的道長。 經常有香客問我舀患,道長徽级,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任聊浅,我火速辦了婚禮餐抢,結果婚禮上,老公的妹妹穿的比我還像新娘低匙。我一直安慰自己旷痕,他們只是感情好,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布顽冶。 她就那樣靜靜地躺著欺抗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪强重。 梳的紋絲不亂的頭發(fā)上绞呈,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音间景,去河邊找鬼佃声。 笑死,一個胖子當著我的面吹牛倘要,可吹牛的內容都是我干的圾亏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼志鹃!你這毒婦竟也來了夭问?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤曹铃,失蹤者是張志新(化名)和其女友劉穎缰趋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铛只,經...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡埠胖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了淳玩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片直撤。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蜕着,靈堂內的尸體忽然破棺而出谋竖,到底是詐尸還是另有隱情,我是刑警寧澤承匣,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布蓖乘,位于F島的核電站,受9級特大地震影響韧骗,放射性物質發(fā)生泄漏嘉抒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一袍暴、第九天 我趴在偏房一處隱蔽的房頂上張望些侍。 院中可真熱鬧,春花似錦政模、人聲如沸岗宣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耗式。三九已至,卻和暖如春趁猴,著一層夾襖步出監(jiān)牢的瞬間刊咳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工儡司, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芦缰,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓枫慷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子或听,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345