|
每天堅(jiān)持學(xué)習(xí)小甲魚講解的《數(shù)據(jù)結(jié)構(gòu)與算法》課程1-3節(jié),總共98節(jié)視頻課程基本上算是過了一遍。第一遍只能是盡可能的去理解一下概念和原理,基本上只能說是與《數(shù)據(jù)結(jié)構(gòu)與算法》混了個(gè)“臉熟”;甚至連“臉熟”也談不上。畢竟《數(shù)據(jù)結(jié)構(gòu)與算法》理論性太強(qiáng),概念太多,對(duì)計(jì)算機(jī)基礎(chǔ)知識(shí)的要求也很高。《數(shù)據(jù)結(jié)構(gòu)與算法》是練內(nèi)功開闊視野的一門課程,以我這稀爛的基礎(chǔ)必須多看幾遍反復(fù)學(xué)習(xí)才可以,所謂“讀書百遍,其義自見”。
雖說學(xué)習(xí)它不能帶來RMB,但是在喧囂的環(huán)境中能安安靜靜的坐下來踏踏實(shí)實(shí)的聽別人講課,既是一種享受,同時(shí)也是對(duì)身心的一種修煉。人不能閑著,一旦閑著了就愛惦記一些不該惦記的事情,比如,別人的.....,別人的......。
計(jì)算機(jī)內(nèi)存是個(gè)線性結(jié)構(gòu),記得C語言中有這樣的描述:“字節(jié)是內(nèi)存中最小的尋址單元,在內(nèi)存中每個(gè)字節(jié)都有一個(gè)獨(dú)一無二的編號(hào),這個(gè)編號(hào)就是地址”;內(nèi)存是用來存儲(chǔ)數(shù)據(jù)的,那么數(shù)據(jù)又分為:1,基本類型,如,字符,整形,浮點(diǎn)型;2,構(gòu)造類型,如數(shù)組,結(jié)構(gòu)體,枚舉。聯(lián)合體;3,指針類型;4,void類型,函數(shù)作為一段代碼,在內(nèi)存中自然也會(huì)有入口地址(函數(shù)名),當(dāng)然,void也代表“任意類型”。郝彬老師說過,編程最終就是要解決數(shù)據(jù)的存儲(chǔ)問題;我的理解就是:在內(nèi)存中由零號(hào)地址(32位系統(tǒng)中,任何數(shù)據(jù)類型都由4個(gè)字節(jié)地址長(zhǎng)度構(gòu)成)開始的線性結(jié)構(gòu)中,對(duì)數(shù)據(jù)進(jìn)行遍歷,查找,插入,刪除這四種操作。數(shù)據(jù)一般有順序存儲(chǔ)(如數(shù)組,結(jié)構(gòu)體)和鏈?zhǔn)酱鎯?chǔ)這兩種存儲(chǔ)方式。每種存儲(chǔ)方式都有自己的優(yōu)點(diǎn)和缺點(diǎn)。如ucos-ii操作系統(tǒng)中的任務(wù)控制塊,內(nèi)存控制塊,消息隊(duì)列就是以鏈?zhǔn)酱鎯?chǔ)方式處理的,每個(gè)控制塊都可以以一個(gè)鏈表中的“結(jié)點(diǎn)”來描述。鏈表包括單向鏈表,雙向鏈表和循環(huán)鏈表(隊(duì)列),本人深有體會(huì),學(xué)好鏈表對(duì)理解操作系統(tǒng)原理大有裨益。
因?yàn)橛?jì)算機(jī)內(nèi)存是個(gè)線性結(jié)構(gòu),要將多維的復(fù)雜的現(xiàn)實(shí)世界問題模擬到一個(gè)一維空間,顯然就有難度。于是那些科學(xué)家們就想辦法將模擬復(fù)雜的現(xiàn)實(shí)世界的數(shù)據(jù)以各種結(jié)構(gòu)形式存儲(chǔ)到內(nèi)存中,以便于更好的處理一些復(fù)雜的問題。于是,就構(gòu)造出了:數(shù)組,結(jié)構(gòu)體,鏈表,樹,表,圖等等這些復(fù)雜的數(shù)據(jù)結(jié)構(gòu);構(gòu)造一種類型的數(shù)據(jù)本身就是一種智慧,應(yīng)該也是一種算法的體現(xiàn)。解決問題的方法有很多,哪種方法最高效呢?于是,那些牛人又提出了“時(shí)間復(fù)雜度”和“空間復(fù)雜度”這兩個(gè)指標(biāo)或概念來衡量一種算法的“復(fù)雜度”。這些牛人包括霍夫曼(樹),最優(yōu)二叉樹,“樹”這種數(shù)據(jù)結(jié)構(gòu)的代表,卡爾曼(濾波),高斯(法國神童),哈希算法(HASH是不是人名?)等等。什么"最短路徑",”哈希算法“,”折中算法“,”黃金分割法“,”線索二叉樹“等等都是一些牛人的智慧。
算法中,最牛逼的應(yīng)該是遞歸。用牛人的話說,人用“迭代”,神用“遞歸”。的確用遞歸解決一些重復(fù)的問題只要設(shè)置好退出遞歸的條件就是神來之筆。例子很多,不多說了。有一種感覺:過一遍《數(shù)據(jù)結(jié)構(gòu)與算法》真的大大開拓了視野,知道了什么是神什么是人;之前學(xué)習(xí)過的那些單片機(jī)程序僅僅只能算是入門,沒什么大不了的。開發(fā)板永遠(yuǎn)是別人的,僅僅只能起個(gè)入門的作用。
作為一個(gè)學(xué)習(xí)者,有時(shí)候不必妄自菲薄,有時(shí)候也大可不必因?yàn)閷W(xué)會(huì)了一點(diǎn)東西而妄自尊大!任何一門科學(xué)是人類智慧的結(jié)晶而不是某個(gè)人的成果。個(gè)人頂多是一塊磚,僅此而已。據(jù)說法國那位天才數(shù)學(xué)家高斯先生,到死也沒有得到國際象棋中的“八皇后問題”的正確答案。
woc,這個(gè)點(diǎn)了。tmd,白天昏昏沉沉,晚上盡胡說八道睡不著;叫老子咋整?!睡覺。
---- 王衍
|
|