數(shù)據(jù)結(jié)構(gòu)學習心得(轉(zhuǎn))
查看(712) 回復(fù)(0) |
|
sszqm1314
|
發(fā)表于 2014-05-31 11:43
樓主
考試和算法設(shè)計精髓一樣:
時間消耗越少,一般空間消耗越大,存儲越冗余 空間消耗越少,一般時間消耗越大,計算越冗余 空間和時間的消耗如果都降低的話,人的智力和腦力消耗越大,包括人思考所用的時間和記憶力。 總之,三者無法 同時降低,可能有人要問這三句話有什么意義?其實,這三句話的意思就是:其他一個或兩個因素的冗余在可以接受的幅度內(nèi),降低另兩個或一個因素的代價。本質(zhì)是折中取舍,如何取舍取決于你的目的。人設(shè)計高效的算法是需要很大代價的,但是,高效算法一旦被發(fā)明,低廉且容易的大批量技術(shù)復(fù)制讓它的整個成本降低,而且,復(fù)制的數(shù)量越龐大,整體成本越低,當你在今天使用一個看似簡單而且高效的算法時,你可曾想過此前有很多人為此付出了巨大的代價和花費? 這三句話的現(xiàn)實意義就是,在考試中,你想提高解題速度,你只能在復(fù)習中記憶更多的常識,知識和結(jié)論。你想巧妙的解決問題,那么意味著你在考試時需要付出更多時間和腦力用于的思考。所以唯一可取的方法是:復(fù)習中記憶掌握,考試中快速計算。 這三句話的現(xiàn)實意義還有,在記憶時,必如記憶中間結(jié)論和單詞,冗余永遠不是好的記憶方法,因為如果你為了記住A,必須記住相關(guān)的B,那么B怎么記憶呢? 由B該如何聯(lián)想到A呢 ? 你記憶的冗余信息越多,說明你遺忘的幾率越大,因為,聯(lián)系中的任意一環(huán)都是你記憶的薄弱部分。此外冗余必然引起信息的不一致性,你還得解決不一致性帶來的問題,總之,冗余作為存儲本質(zhì)及其精髓而言,對人和計算機都非常關(guān)鍵!請注意,這里的冗余只是不必要的冗余,如俞敏洪的聯(lián)想記憶,就是這種非常愚蠢做法的明證。那么,該如何記憶呢?最好的方法莫過于降低冗余,改善存儲結(jié)構(gòu)。抽象與具體,歸納與演繹,分析與綜合,對比與類推,分類細化與拓沿一般,這是人的思維獨到之處,從自個思維模式著手,發(fā)現(xiàn)你最擅長的一面是什么?(比如本文作者相對比較擅長分析,抽象,類推三種),從你自身出發(fā),選擇適合你的方法。比如:詞根+詞綴記憶這個方法就是好的方法,首先,它降低了記憶的冗余;其次它采用二維存儲結(jié)構(gòu)比一維更便于記憶。 我還想談一點我對考試的看法:知識是冗余的常識,復(fù)習應(yīng)該是一個超集合,考試只是這個超集合的子集的冪集。 對于數(shù)據(jù)結(jié)構(gòu)和算法,我認為: 數(shù)據(jù)結(jié)構(gòu)其實就是人的頭腦中的三種邏輯模式(先后關(guān)系[線],層次關(guān)系[樹],交互關(guān)系[圖])如何用計算機存儲模式(順序存儲[馮諾依曼機的特點]和鏈接存儲[間接尋址])來實現(xiàn),在此過程中需要考慮兩個問題:一,這種存儲如何和人頭腦的思維達到融合,方便人解決問題。二,數(shù)據(jù)存儲的目的和意義在于數(shù)據(jù)訪問,數(shù)據(jù)訪問決定數(shù)據(jù)存儲,因此訪問效率和存儲效率必須折中取舍。 至于,算法,其實是計算機解題模式,無非是存取,運算,順序執(zhí)行,跳轉(zhuǎn),迭代和遞歸的有限步驟。 我推薦17個算法,請注意,如果你熟悉這17算法的話,在考試中,就可以寫出相對較好的算法?荚囍械乃惴ǖ淖顑(yōu)解的復(fù)雜度是O(logn)級,這些算法可以幫助你寫出O(n)或者O(nlogn)的解法?荚嚂r間很關(guān)鍵,一般,你沒有過多的時間思考最優(yōu)解,你給出線性的算法就已經(jīng)足夠了 ,失之東隅,收之桑榆。 算法如下: 線形2個: 1.將兩個有序表合并為一個表,這個算法的變種很多,可以是鏈表,順序表。涉及集合運算, 歸并排序,字符串處理。 2.將一個順序表的元素重新劃分,左邊的較小,右邊較大。涉及快速排序,求字符串的逆串。 樹形9個: (注意:有些可以實現(xiàn),有些實現(xiàn)不了,可以拿來思考) 3-5.前序線索化,遞歸實現(xiàn),棧模擬遞歸,非棧式迭代實現(xiàn)。 6-8.中序線索化,遞歸實現(xiàn),棧模擬遞歸,非棧式迭代實現(xiàn)。 8-11.后序線索化,遞歸實現(xiàn),棧模擬遞歸,非棧式迭代實現(xiàn)。 圖形6個: (注意:至少會畫表格,寫出算法執(zhí)行的逐個步驟) 12:DFS 13:BFS 我強烈推薦大家做一些走迷宮的編程(Maze),DFS和BFS都可以實現(xiàn),好好比對一下。 14.MST:prim,kruskal 15.short pathijkstra ,Floyd 16.AOV:拓撲排序的DFS,BFS實現(xiàn) 17.AOE:關(guān)鍵路徑 |
回復(fù)話題 |
||
上傳/修改頭像 |
|
|