A. 如何學習數據結構與演算法
1、記住數據結構,記住演算法思想(是什麼)記住數據結構最直觀的東西;記憶該數據結構的定義、性質、特點等。很多東西的理解和創新都是以記憶為前提的。
2、進行大量相關編程練習,用編程語言去實現某一數據結構上的演算法(怎麼辦)
很多時候,理解一個演算法很容易,很容易在紙上去模擬一個演算法的實現過程。但具體實現,則是另一回事。一定得先自己思考,然後再去看書中給的編程語言實現。
3、“記住”特定情景下,利用某一特定的數據結構,去解決問題 (為什麼+怎麼辦)
每介紹一種數據結構,浙大數據結構與演算法的MOOC課程都會有一個實際問題來作為“引子”,回答了“這種數據結構為什麼會出現”。有的是為了實現特定的操作,有的是為了時間和空間上(大部分考慮的是時間復雜性)效率的更高(所以,沒事的時候,分析一下演算法的時間復雜性)。這些東西,我們也須理解記憶。每一數據結構都有其特性,去解決某一類問題,我們需要去記憶,去感悟。
4、形成一個屬於自己的知識體系
如何去“記住”(記好筆記,多多復習);在學習過程中,遇到挫折,產生挫敗感該如何處理(這個是必然會發生的,總有難以理解不會的地方);如何進行心態方面的調整(欲速則不達,不過也有”敏捷學習“的概念)。
B. 怎樣學好數據結構與演算法
1、 有良好的學習興趣
(1)課前預習,對所學知識產生疑問,產生好奇心。
(2)聽課中要配合老師講課,滿足感官的興奮性。聽課中重點解決預習中疑問,把老師課堂的提問、停頓、教具和模型的演示都視為欣賞音樂,及時回答老師課堂提問,培養思考與老師同步性,提高精神,把老師對你的提問的評價,變為鞭策學習的動力。
(3)思考問題注意歸納,挖掘你學習的潛力。
(4)聽課中注意老師講解時的數學思想,多問為什麼要這樣思考,這樣的方法怎樣是產生的。
(5)把概念回歸自然。所有學科都是從實際問題中產生歸納的,數學概念也回歸於現實生活,如角的概念、至交坐標系的產生、極坐標系的產生都是從實際生活中抽象出來的。只有回歸現實才能使對概念的理解切實可靠,在應用概念判斷、推理時會准確。
2、 建立良好的學習數學習慣。
習慣是經過重復練習而鞏固下來的穩重持久的條件反射和自然需要。建立良好的學習數學習慣,會使自己學習感到有序而輕松。高中數學的良好習慣應是:多質疑、勤思考、好動手、重歸納、注意應用。學生在學習數學的過程中,要把教師所傳授的知識翻譯成為自己的特殊語言,並永久記憶在自己的腦海中。另外還要保證每天有一定的自學時間,以便加寬知識面和培養自己再學習能力。
3、 有意識培養自己的各方面能力
數學能力包括:邏輯推理能力、抽象思維能力、計算能力、空間想像能力和分析解決問題能力共五大能力。這些能力是在不同的數學學習環境中得到培養的。在平時學習中要注意開發不同的學習場所,參與一切有益的學習實踐活動,如數學第二課堂、數學競賽、智力競賽等活動。平時注意觀察,比如,空間想像能力是通過實例凈化思維,把空間中的實體高度抽象在大腦中,並在大腦中進行分析推理。其它能力的培養都必須學習、理解、訓練、應用中得到發展。特別是,教師為了培養這些能力,會精心設計「智力課」和「智力問題」比如對習題的解答時的一題多解、舉一反三的訓練歸類,應用模型、電腦等多媒體教學等,都是為數學能力的培養開設的好課型,在這些課型中,學生務必要用全身心投入、全方位智力參與,最終達到自己各方面能力的全面發展。
其它注意事項
1、注意化歸轉化思想學習。
人們學習過程就是用掌握的知識去理解、解決未知知識。數學學習過程都是用舊知識引出和解決新問題,當新的知識掌握後再利用它去解決更新知識。初中知識是基礎,如果能把新知識用舊知識解答,你就有了化歸轉化思想了。可見,學習就是不斷地化歸轉化,不斷地繼承和發展更新舊知識。
2、學會數學教材的數學思想方法。
數學教材是採用蘊含披露的方式將數學思想溶於數學知識體系中,因此,適時對數學思想作出歸納、概括是十分必要的。概括數學思想一般可分為兩步進行:一是揭示數學思想內容規律,即將數學對象其具有的屬性或關系抽取出來,二是明確數學思想方法知識的聯系,抽取解決全體的框架。實施這兩步的措施可在課堂的聽講和課外的自學中進行。
學數學的幾個建議
1、記數學筆記,特別是對概念理解的不同側面和數學規律,教師為備戰高考而加的課外知識。
2、建立數學糾錯本。把平時容易出現錯誤的知識或推理記載下來,以防再犯。爭取做到:找錯、析錯、改錯、防錯。達到:能從反面入手深入理解正確東西;能由果朔因把錯誤原因弄個水落石出、以便對症下葯;解答問題完整、推理嚴密。
3、記憶數學規律和數學小結論。
4、與同學建立好關系,爭做「小老師」,形成數學學習「互助組」。
5、爭做數學課外題,加大自學力度。
6、反復鞏固,消滅前學後忘。
7、學會總結歸類。可:①從數學思想分類②從解題方法歸類③從知識應用上分類
學習上占第一,每個同學都可以做到。之所以你占不了第一,主要有兩個原因:第一、生活方式、學習方法不正確,第二、沒有堅強的毅力。在這裡面毅力是第一重要的,學習方法是第二重要的。
C. 鎬庢牱鎺屾彙璁$畻鏈虹▼搴忚捐′箣綆楁硶鍜屾暟鎹緇撴瀯錛岀敤浠涔堟潵瀛︿範瀹冿紵
綆楁硶錛圓lgorithm錛夋槸鎸囪В棰樻柟妗堢殑鍑嗙『鑰屽畬鏁寸殑鎻忚堪錛屾槸涓緋誨垪瑙e喅闂棰樼殑娓呮櫚鎸囦護錛岀畻娉曚唬琛ㄧ潃鐢ㄧ郴緇熺殑鏂規硶鎻忚堪瑙e喅闂棰樼殑絳栫暐鏈哄埗銆備篃灝辨槸璇達紝鑳藉熷逛竴瀹氳勮寖鐨勮緭鍏ワ紝鍦ㄦ湁闄愭椂闂村唴鑾峰緱鎵瑕佹眰鐨勮緭鍑恆傚傛灉涓涓綆楁硶鏈夌己闄鳳紝鎴栦笉閫傚悎浜庢煇涓闂棰橈紝鎵ц岃繖涓綆楁硶灝嗕笉浼氳В鍐寵繖涓闂棰樸備笉鍚岀殑綆楁硶鍙鑳界敤涓嶅悓鐨勬椂闂淬佺┖闂存垨鏁堢巼鏉ュ畬鎴愬悓鏍風殑浠誨姟銆備竴涓綆楁硶鐨勪紭鍔e彲浠ョ敤絀洪棿澶嶆潅搴︿笌鏃墮棿澶嶆潅搴︽潵琛¢噺銆
綆楁硶涓鐨勬寚浠ゆ弿榪扮殑鏄涓涓璁$畻錛屽綋鍏惰繍琛屾椂鑳戒粠涓涓鍒濆嬬姸鎬佸拰錛堝彲鑳戒負絀虹殑錛夊垵濮嬭緭鍏ュ紑濮嬶紝緇忚繃涓緋誨垪鏈夐檺鑰屾竻鏅板畾涔夌殑鐘舵侊紝鏈緇堜駭鐢熻緭鍑哄苟鍋滄浜庝竴涓緇堟併備竴涓鐘舵佸埌鍙︿竴涓鐘舵佺殑杞縐諱笉涓瀹氭槸紜瀹氱殑銆傞殢鏈哄寲綆楁硶鍦ㄥ唴鐨勪竴浜涚畻娉曪紝鍖呭惈浜嗕竴浜涢殢鏈鴻緭鍏ャ
褰㈠紡鍖栫畻娉曠殑姒傚康閮ㄥ垎婧愯嚜灝濊瘯瑙e喅甯屽皵浼鐗規彁鍑虹殑鍒ゅ畾闂棰橈紝騫跺湪鍏跺悗灝濊瘯瀹氫箟鏈夋晥璁$畻鎬ф垨鑰呮湁鏁堟柟娉曚腑鎴愬艦銆傝繖浜涘皾璇曞寘鎷搴撳皵鐗孤峰摜寰峰皵銆丣acques Herbrand鍜屾柉钂傝姮路縐戝皵路鍏嬭幈灝煎垎鍒浜1930騫淬1934騫村拰1935騫存彁鍑虹殑閫掑綊鍑芥暟錛岄樋闅嗕綈路閭卞囦簬1936騫存彁鍑虹殑位婕旂畻錛1936騫碋mil Leon Post鐨凢ormulation 1鍜岃壘浼β峰浘鐏1937騫存彁鍑虹殑鍥劇伒鏈恆傚嵆浣垮湪褰撳墠錛屼緷鐒跺父鏈夌洿瑙夋兂娉曢毦浠ュ畾涔変負褰㈠紡鍖栫畻娉曠殑鎯呭喌銆
涓錛屾暟鎹瀵硅薄鐨勮繍綆楀拰鎿嶄綔錛氳$畻鏈哄彲浠ユ墽琛岀殑鍩烘湰鎿嶄綔鏄浠ユ寚浠ょ殑褰㈠紡鎻忚堪鐨勩備竴涓璁$畻鏈虹郴緇熻兘鎵ц岀殑鎵鏈夋寚浠ょ殑闆嗗悎錛屾垚涓鴻ヨ$畻鏈虹郴緇熺殑鎸囦護緋葷粺銆備竴涓璁$畻鏈虹殑鍩烘湰榪愮畻鍜屾搷浣滄湁濡備笅鍥涚被錛
1錛岀畻鏈榪愮畻錛氬姞鍑忎箻闄ょ瓑榪愮畻
2錛岄昏緫榪愮畻錛氭垨銆佷笖銆侀潪絳夎繍綆
3錛屽叧緋昏繍綆楋細澶т簬銆佸皬浜庛佺瓑浜庛佷笉絳変簬絳夎繍綆
4錛屾暟鎹浼犺緭錛氳緭鍏ャ佽緭鍑恆佽祴鍊肩瓑榪愮畻
浜岋紝綆楁硶鐨勬帶鍒剁粨鏋勶細涓涓綆楁硶鐨勫姛鑳界粨鏋勪笉浠呭彇鍐充簬鎵閫夌敤鐨勬搷浣滐紝鑰屼笖榪樹笌鍚勬搷浣滀箣闂寸殑鎵ц岄『搴忔湁鍏熾
甯屾湜鎴戣兘甯鍔╀綘瑙g枒閲婃儜銆
D. 如何學習數據結構和演算法
數據結構很重要,在學習計算機類相關知識中佔有很大成分,它注重的是思想,想法。。
數據結構所講的就是一些演算法,核心演算法,講解那些問題的解決核心演算法,學習數據結構主要幫助你去更好的鍛煉你的思考能力,看到一個編程題,如何去想,如何去構思,怎樣才能解決。。考研過程中數據結構也是一個重要的考察對象。。
總之,它很重要,建議你學號鏈表和線性表那一章,那是整個數據結構的基礎之基礎,後面的學習基本上都是在那上面展開的。
在學習過程中,要多想,多思考,多看書,要用心去體悟書本的那些演算法,去理解那些核心思想,去把握,去學習,去掌握。。學習久了,就會有感覺的,邊學邊練習也是不錯的做法,相信你會學好的。。。多思多練。。。