首先非常感謝杰哥精彩的課堂演繹,帶我體會(huì)到數(shù)據(jù)結(jié)構(gòu)與算法的作用,也讓我意識(shí)到如何去優(yōu)化代碼。
跟著杰哥學(xué)習(xí)的過程中我自己也總結(jié)了一些學(xué)習(xí)方法:
一、記住數(shù)據(jù)結(jié)構(gòu)與算法概念 (是什么)
我覺得學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法最基礎(chǔ)的是在學(xué)完之后要能夠給別人講清楚概念,比如什么是“堆?!笔裁词恰捌胶舛鏄洹钡鹊?,這一步的關(guān)鍵是需要自己理解,然后才可能用語言轉(zhuǎn)述,我也一直在這樣練習(xí),慢慢把這些概念變成自己腦子里的長(zhǎng)時(shí)記憶。
比如:學(xué)習(xí)哈夫曼樹的時(shí)候。哈夫曼樹的定義:WPL(帶權(quán)路徑長(zhǎng)度)最小的二叉樹;哈夫曼樹的特點(diǎn):(1)沒有度為1的結(jié)點(diǎn)(2)n個(gè)葉子結(jié)點(diǎn)的哈夫曼樹共有2n-1個(gè)結(jié)點(diǎn)(3)哈夫曼樹的任意非葉節(jié)點(diǎn)的左右子樹交換后仍是哈夫曼樹。關(guān)于“數(shù)據(jù)結(jié)構(gòu)”,需要記憶的內(nèi)容也需要自己在其中慢慢領(lǐng)悟。
二、編程練習(xí)(怎么做)
杰哥的課實(shí)操性是很強(qiáng)的,每次也會(huì)留一些作業(yè)來做,我基本上都是認(rèn)認(rèn)真真完成的,自己在寫的過程中也有不一樣的體會(huì),結(jié)合之前記下的概念,更加深入理解,這一步要求的不僅僅是對(duì)概念的理解,也是自己綜合能力的鍛煉,自己也會(huì)慢慢思考形成一些自己的理解,比如:如何用遞歸解決問題,如何使用循環(huán)等等
三、結(jié)合場(chǎng)景去思考(思考)
這一步的基本已經(jīng)到實(shí)際應(yīng)用的階段了,結(jié)合具體的場(chǎng)景,具體的問題去思考,為什么這里要用這種數(shù)據(jù)結(jié)構(gòu),這里要實(shí)現(xiàn)特定的操作需要什么樣的數(shù)據(jù)結(jié)構(gòu),怎樣去提升效率,每個(gè)數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)解決那些問題合適,哪些是最優(yōu)解。寫的時(shí)候多一些思考,慢慢自己的效率提高,代碼質(zhì)量也就提高了。
大概就是這些,一點(diǎn)拙見,希望大家多指點(diǎn),最后再次感謝杰哥精心準(zhǔn)備的課程,望小碼哥可以推出更多精品的線上課程,幫助在職程序員更快的提升自己、升職加薪,做更多有價(jià)值于意義的工作。