02如何抓住重點,系統高效地學習數據結構與算法?

以下內容總結自極客時間王爭大佬的《數據結構與算法之美》課程,本文章僅供個人學習總結。

什么是數據結構?什么是算法?

從廣義上講,數據結構就是指一組數據的存儲結構。算法就是操作數據的一組方法。

類比圖書館的書籍,我們如果想找一本書可以有很多種方法能找到這本書,可以從頭一本一本找,也可以根據分類來縮小范圍找。毫無疑問后一種耗時更少。這就是生活中的算法。

算法和數據結構是聯系在一起的,特定的數據結構有特定的算法去操作,數據結構為算法提供服務,算法又依賴于特定的數據結構。比如廣度優先遍歷就可以作用在樹或者圖上,但是沒有對數組進行廣度優先遍歷的。

數據結構是靜態的,它只是組織數據的一種方式。如果不在它的基礎上操作、構建算法,孤立存在的數據結構就是沒用的。

學習的重點在什么地方?

  1. 復雜度分析(重要) 數據結構和算法的半壁江山,是數據結構和算法學習的精髓(數據結構和算法解決的是如何更省、更快地存儲和處理數據的問題,因此,我們就需要一個考量效率和資源消耗的方法,這就是復雜度分析方法。所以,如果你只掌握了數據結構和算法的特點、用法,但是沒有學會復 雜度分析,那就相當于只知道操作口訣,而沒掌握心法。只有把心法了然于胸,才能做到無招勝有招!)
  2. 10種數據結構(數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳表、圖、Trie樹)和10種常用算法(遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動態規劃、字符串匹配算法)

3. 切記不要只是死記硬背,不要為了學習而學習,而是要學習它的“來歷”“自身的特點”“適合解決的問題”以及“實際的應用場景”,多辯證地思考,多問為什么

一些可以讓你事半功倍的學習技巧

  1. 邊學邊練,適度刷題

    “邊學邊練”這一招非常有用。建議你每周花1~2個小時的時間,集中把這周的三節內容涉及的數據結構和算法,全都自己寫出來,用代碼實現一遍。這樣一定會比單純地看或者聽的效果要好很多!

  2. 多問、多思考、多互動

    學習最好的方法是,找到幾個人一起學習,一塊兒討論切磋,寫博客是一件可以交流和思考的很好的方式

  3. 打怪升級學習法

    每節課后都寫一篇學習筆記或者學習心得,可以不用太長,但是一定要有思考。證明自己有進步

  4. 知識需要沉淀,不要想試圖一下子掌握所有

    在學習的過程中,一定會碰到“攔路虎”。如果哪個知識點沒有怎么學懂,不要著急,這是正常的。因為,想聽一遍、看一遍就把所有知識掌握,這肯定是不可能的。學習知識的過程是反復迭代、不斷沉淀的過程。 如果碰到“攔路虎”,可以請教他人,或者可以先沉淀一下,過幾天再重新學一遍。所謂,書讀百遍其義自見,我覺得是很有道理的!

課后思考

思考學習數據結構與算法的方法。另外,你在之前學習數據結構和算法的過程中,遇到過什么樣的困難或者疑惑嗎?

主要是利用每天的通勤時間聽大佬的課程,對照著講義看,然后每次聽完一節課些一篇總計記錄下本節的內容和自己的思考,將自己的小節記錄放在github上,能夠促進自己堅持下去。

最近刷leecode就碰到了一個動態規劃的問題,斷斷續續想了一周沒有解決,代碼很簡單,但是自己對動態規劃的思維方式有些不理解,導致卡頓。所以訂了大佬的課程想系統的學習數據結構與算法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275056.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275056.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275056.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第2年,倒數第3天,1.5萬票,感動!

1源碼共讀大家好,我是若川。眾所周知。從8月份開始,我組織了源碼共讀活動,至今已經有5個月了,每周一期,進行到了第18期。每周堅持寫源碼解讀文章,每天堅持答疑解惑,幫助了很多人學會看源碼&…

啟發式搜索給神經網絡_神經科學如何支持UX啟發式

啟發式搜索給神經網絡重點 (Top highlight)Interaction and UX designers have long known and used heuristics to guide the creation of a user-friendly interface. We know empirically that these principles work, and they make “common sense”. These heuristics th…

Django實戰(1):需求分析和設計

Depot是《Agile Web Development with Rails》中的一個購物車應用。 該書中用多次迭代的方法,逐步實現購物車應用,使很多人走上了rails開發的道路。 遺憾的是Django世界中好像沒有類似的指引,也許是因為pythoner 不需要具體的例子。 但是如果…

使用 apiDoc 為你的Node.js API 生成文檔

翻譯: 瘋狂的技術宅 原文:jonathas.com/documenting… 未經許可,禁止轉載! 當你為其他開發人員(前端,桌面,移動等)開發 API 時,需要生成一份風格良好的文檔,以…

海浪 shader_海浪下的發現

海浪 shaderI’ve been playing Subnautica for over 25 hours now, and likely have at least that many more to go. The game puts you in the shoes of a crew member on the Aurora, a spaceship that suffers a catastrophic incident and plummets to the largely ocean…

最后一天,特邀小姐姐配音拉票,今日可投28票

1源碼共讀大家好,我是若川。最后一天,特邀小姐姐配音拉票,超級好聽。眾所周知。從8月份開始,我組織了源碼共讀活動,至今已經有5個月了,每周一期,進行到了第18期。每周堅持寫源碼解讀文章&#x…

NET中使用Memcached的相關資源整理

本文轉自:http://www.cnblogs.com/dudu/archive/2009/07/19/1526407.html Memcached官方站點:http://www.danga.com/memcached / Memcached Win32 1.2.6下載:http://code.jellycan.com/memcached/ 安裝幫助:Windows下的.NET Memca…

FFMPEG 視頻圖像解封裝解碼

FFMPEG4.0 音頻解碼解封裝FFMPEG 音頻封裝編碼 下面的函數方法基于最新的FFMPEG 4.0(4.X):本文講是如何從一個視頻文件中提取出其中的圖像數據,并將圖像數據保存到文件中。 解碼解封裝的過程與音頻差不多,具體如下&…

對數據可視化的理解_使數據可視化更容易理解

對數據可視化的理解Data is weaving its way into almost all aspects of our lives since the past decade. Our ability to store more information in smaller and smaller spaces has encouraged us to make sure we leave no information out. The ease of collecting inf…

面試官:項目中常用的 .env 文件原理是什么?如何實現?

1. 前言大家好,我是若川。持續組織了5個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。本文倉庫 h…

語言分類,我接觸和我想學習的

本文信息和數據出自hyperpolyglot,將當前主流編程語言分為11個大類,分別為:解釋型(PHP,Perl,Python,Ruby,Tcl,Lua,JavaScript,Io)、操作系統自動化型(POSIX Shell,AppleScript,PowerShell)、C風格(C,Objective C,Java,C#)、Pascal風格(Pascal…

梯度下降法和隨機梯度下降法

1. 梯度 在微積分里面,對多元函數的參數求?偏導數,把求得的各個參數的偏導數以向量的形式寫出來,就是梯度。比如函數f(x,y), 分別對x,y求偏導數,求得的梯度向量就是(?f/?x, ?f/?y)T,簡稱grad f(x,y)或者▽f(x,y)。對于在點(x…

一張圖看程序媛阿源的2021個人年度流水賬

大家好,我是若川。持續組織了5個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。本文來自讀者阿源小…

案例研究:設計與方法_如何進行1小時的重新設計(案例研究)

案例研究:設計與方法速度設計簡介 (Intro to Speed Designing) I’ve been an advocate of speed redesigning technique for a while. The idea is simple — decrease the hand-eye lag and make super quick decisions, seemingly without thinking. The logic behind it is…

圖文并茂重新認識下遞歸

大家好,我是若川。持續組織了5個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。對于大部分前端(包…

《C和指針》讀書筆記

看過了經典的K&R C,又看了這本Pointers on C,溫習了C語言的基本語法。 在重溫過程中,感覺需要重點把握的知識是指針、結構和動態內存分配。 這對今后的算法和操作系統方面的研究學習很有幫助。 3.2.3 聲明指針int* b, c, d;本以為這條語句…

FPGA設計者的5項基本功

記得《佟林傳》里,佟林練的基本功是“繞大樹、解皮繩”,然后才練成了什么“鬼影隨行、柳葉綿絲掌”。 在我看來,成為一名說得過去的FPGA設計者,需要練好5項基本功:仿真、綜合、時序分析、調試、驗證。 需要強調的一點是…

unity 全息交互ui_UI向3D投影全息界面的連續發展

unity 全息交互uiThe user interface has been natural in its evolution and strategically heading towards the 3D-projection holographic interface (3D-PHI) era.用戶界面在其發展過程中一直很自然,并且在戰略上正朝著3D投影全息界面( 3D-PHI )時代邁進。 Si…

開發工具 快捷鍵整理

快捷鍵大全 JAVA 開發工具 MyEclipse -------------------------------------MyEclipse 快捷鍵1(CTRL)-------------------------------------Ctrl1 快速修復CtrlD: 刪除當前行 CtrlQ 定位到最后編輯的地方 CtrlL 定位在某行 CtrlO 快速顯示 OutLine CtrlT 快速顯示當前類…

前端構建新世代,Esbuild 原來還能這么玩!

大家好,我是若川。持續組織了5個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。今天分享一篇esbui…