數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記——01緒論

一卧蜓、數(shù)據(jù)結(jié)構(gòu)的基本概念

(1)數(shù)據(jù):人們利用文字符號妓蛮、數(shù)字符號以及其他規(guī)定的符號,對現(xiàn)實(shí)世界的事物及其活動所做的抽象描述殿衰。

(2)數(shù)據(jù)元素:數(shù)據(jù)的基本單位,即數(shù)據(jù)集合中的一個個體盛泡。

(3)數(shù)據(jù)項(xiàng):一個數(shù)據(jù)元素可由若干數(shù)據(jù)項(xiàng)組成闷祥,具有獨(dú)立含義的最小單位。

元素之間的關(guān)系稱為結(jié)構(gòu)傲诵。數(shù)據(jù)結(jié)構(gòu)凯砍,簡單地說,就是 數(shù)據(jù)元素的集合加上數(shù)據(jù)元素之間的相互關(guān)系的集合拴竹,可形式化描述為一個二元組:Data Structure = ( D, S)悟衩,其中,D:數(shù)據(jù)元素的集合栓拜,S:D上關(guān)系(結(jié)構(gòu))的集合座泳。

數(shù)據(jù)結(jié)構(gòu) = 數(shù)據(jù)的邏輯結(jié)構(gòu)∧挥搿+ 數(shù)據(jù)的存儲結(jié)構(gòu)√羰啤+ 數(shù)據(jù)的運(yùn)算

(4)抽象數(shù)據(jù)元素:沒有實(shí)際含義的數(shù)據(jù)元素

(5)抽象數(shù)據(jù)元素類型:沒有確切定義的數(shù)據(jù)類型

(6)數(shù)據(jù)的邏輯結(jié)構(gòu):數(shù)據(jù)元素之間的相互聯(lián)系方式

(7)數(shù)據(jù)的存儲結(jié)構(gòu):數(shù)據(jù)元素在計算機(jī)中的存儲方式

(8)數(shù)據(jù)的操作:對一種數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行的某種處理

(9)數(shù)據(jù)的操作集合:對一種數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行的所有操作

數(shù)據(jù)的邏輯結(jié)構(gòu)

1、線性結(jié)構(gòu):除第一個和最后一個數(shù)據(jù)元素外啦鸣,每個數(shù)據(jù)元素只有一個前驅(qū)和一個后繼數(shù)據(jù)元素

2潮饱、樹結(jié)構(gòu):除根節(jié)點(diǎn)外,每個數(shù)據(jù)元素只有一個前驅(qū)數(shù)據(jù)元素诫给,可由0個或若干個后繼數(shù)據(jù)元素

3香拉、圖結(jié)構(gòu):每個數(shù)據(jù)元素可有0個或若干個前驅(qū)數(shù)據(jù)元素和0個或若干個后繼數(shù)據(jù)元素


數(shù)據(jù)的存儲結(jié)構(gòu)

1、順序存儲結(jié)構(gòu):把數(shù)據(jù)元素存儲在一塊連續(xù)地址空間的內(nèi)存中中狂,其特點(diǎn)是邏輯上相鄰的數(shù)據(jù)元素在物理上也相鄰凫碌,數(shù)據(jù)間的邏輯關(guān)系表現(xiàn)在數(shù)據(jù)存儲位置關(guān)系上

2、鏈?zhǔn)酱鎯Y(jié)構(gòu):使用指針把相互直接關(guān)聯(lián)的結(jié)點(diǎn)(即直接前驅(qū)結(jié)點(diǎn)或直接后繼節(jié)點(diǎn))鏈接起來吃型,其特點(diǎn)是邏輯上相鄰的數(shù)據(jù)元素在物理上不一定相鄰证鸥,數(shù)據(jù)間的邏輯關(guān)系表現(xiàn)在結(jié)點(diǎn)的鏈接關(guān)系上

(指針:是指向物理存儲單元地址的變量。由數(shù)據(jù)元素域和指針域組成的一個結(jié)構(gòu)體稱為結(jié)點(diǎn))

邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)的區(qū)別

1.邏輯結(jié)構(gòu)定義了數(shù)據(jù)元素之間的邏輯關(guān)系

2.存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在計算機(jī)中實(shí)現(xiàn)

3.一種邏輯結(jié)構(gòu)可以采用不同的存儲方式(順序,鏈?zhǔn)剑┐娣旁谟嬎銠C(jī)中枉层,但都必須反映出要求的邏輯關(guān)系


一個具體問題的軟件設(shè)計通常包含三個步驟

1泉褐、分析和確定問題的邏輯結(jié)構(gòu)和邏輯操作

2、設(shè)計該問題的具體存儲結(jié)構(gòu)

3鸟蜡、設(shè)計該問題在具體存儲結(jié)構(gòu)下的操作實(shí)現(xiàn)算法

二膜赃、抽象數(shù)據(jù)類型和軟件構(gòu)造的方法

類型是一組值得集合

數(shù)據(jù)類型是指一個類型和定義在這個類型上的操作的集合

抽象數(shù)據(jù)類型(ADT)是指一個邏輯概念上的類型和這個類型上的操作的集合

ADT定義包含三部分

1、數(shù)據(jù)元素

2揉忘、數(shù)據(jù)元素之間的相互關(guān)系(結(jié)構(gòu))

3跳座、定義在數(shù)據(jù)結(jié)構(gòu)上的一組邏輯操作

三、算法及其時間復(fù)雜度

算法是描述求解問題方法的操作步驟集合

算法的設(shè)計

1泣矛、結(jié)構(gòu)化程序設(shè)計方法:“自頂向下疲眷,逐步以模塊的形式細(xì)化”原則

2、面向?qū)ο蟪绦蛟O(shè)計方法

描述算法的語言形式

1您朽、文字形式

2狂丝、偽代碼形式

3、程序設(shè)計語言形式

算法分析

評價算法好壞的標(biāo)準(zhǔn)哗总,除算法應(yīng)該是正確的外几颜,還應(yīng)考慮:

1.該算法是易讀、易編碼讯屈、可調(diào)試

2.該算法能有效利用計算機(jī)資源蛋哭,歸結(jié)為cpu執(zhí)行指令數(shù)和占用內(nèi)存存儲單元數(shù)

評價方法

1.實(shí)驗(yàn)方法(運(yùn)行程序)

2.算法的漸進(jìn)分析,簡稱算法分析

′棠浮(1)分析算法消耗時間資源——時間復(fù)雜度

∽恢骸(2)分析算法使用的空間資源——空間復(fù)雜度

問題的規(guī)模

例如, “求1到100的所有素數(shù)之和“ 與 “求1到1000的所有素數(shù)之和” 是同一類型的問題叛本,但問題的規(guī)模不同棺妓。

設(shè)n表示問題的規(guī)模(或算法的輸入量),則該類問題可抽象地表示為:

“求1到n的所有素數(shù)之和”炮赦。

解決同樣類型的問題有多種算法怜跑,我們需要一種方法來對不同的算法來進(jìn)行比較

算法滿足以下性質(zhì)

輸入性、輸出性吠勘、有限性性芬、確定性、可執(zhí)行性

算法設(shè)計滿足以下目標(biāo)

正確性剧防、可讀性植锉、健壯性、高時間效率峭拘、高空間效率

算法的時間復(fù)雜度還與初始輸入集有關(guān)

平均時間復(fù)雜度是指所有可能的輸入數(shù)據(jù)集均以等概率出現(xiàn)的情況下俊庇,算法的平均運(yùn)行時間狮暑。

最壞輸入數(shù)據(jù)集情況下的時間復(fù)雜度稱最壞時間復(fù)雜度。一般若無特定說明辉饱,討論的時間復(fù)雜度均指的是最壞情況下的運(yùn)行時間搬男。

空間復(fù)雜度

數(shù)據(jù)結(jié)構(gòu)所需空間和算法在處理過程中所需額外空間的總和

它同樣是問題規(guī)模n的函數(shù),也可以實(shí)行類似的漸進(jìn)分析方法彭沼。

大多數(shù)靜態(tài)數(shù)據(jù)結(jié)構(gòu)(即存儲空間在執(zhí)行過程中不發(fā)生變化)缔逛,空間開銷與問題的規(guī)模成正比(為線性增長),或者不隨問題規(guī)模而增大(為常數(shù))姓惑。

最后算法應(yīng)具有可讀性褐奴,主要體現(xiàn)在算法的符號命名和書寫規(guī)范上

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市于毙,隨后出現(xiàn)的幾起案子敦冬,更是在濱河造成了極大的恐慌,老刑警劉巖唯沮,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匪补,死亡現(xiàn)場離奇詭異,居然都是意外死亡烂翰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門蚤氏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甘耿,“玉大人揩尸,你說我怎么就攤上這事茎芋⌒∪” “怎么了袍暴?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵字支,是天一觀的道長杂拨。 經(jīng)常有香客問我锡凝,道長杉女,這世上最難降的妖魔是什么贰剥? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任倾剿,我火速辦了婚禮,結(jié)果婚禮上蚌成,老公的妹妹穿的比我還像新娘前痘。我一直安慰自己,他們只是感情好担忧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布芹缔。 她就那樣靜靜地躺著,像睡著了一般瓶盛。 火紅的嫁衣襯著肌膚如雪最欠。 梳的紋絲不亂的頭發(fā)上示罗,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機(jī)與錄音芝硬,去河邊找鬼蚜点。 笑死,一個胖子當(dāng)著我的面吹牛吵取,可吹牛的內(nèi)容都是我干的禽额。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼皮官,長吁一口氣:“原來是場噩夢啊……” “哼脯倒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捺氢,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤藻丢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后摄乒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悠反,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年馍佑,在試婚紗的時候發(fā)現(xiàn)自己被綠了斋否。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡拭荤,死狀恐怖茵臭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舅世,我是刑警寧澤旦委,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站雏亚,受9級特大地震影響缨硝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜罢低,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一查辩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧网持,春花似錦宜肉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至日杈,卻和暖如春遣铝,著一層夾襖步出監(jiān)牢的瞬間佑刷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工酿炸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瘫絮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓填硕,卻偏偏與公主長得像麦萤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子扁眯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容