CodeGym /Java Blog /Toto sisi /編碼技能升級,第 2 部分。從哪裡學習算法
John Squirrels
等級 41
San Francisco

編碼技能升級,第 2 部分。從哪裡學習算法

在 Toto sisi 群組發布
繼續我們關於不屬於 CodeGym 課程的其他編程相關主題的系列文章,以及有關您可以在哪裡學習它們的鏈接和建議。今天我們來聊聊算法。 編碼技能升級,第 2 部分。從哪裡學習算法 - 1

什麼是算法

算法本身只不過是解決問題的分步收據。現在編程中使用的大多數算法已經被發現、測試和證明。Java 中的算法是用於對集合執行各種操作的靜態方法。如果 Java 程序員使用數據結構來存儲和組織數據,則算法用於操作這些結構中的數據。所以這兩個主題是相互關聯的,了解它們如何協同工作非常重要,可以使您的 Java 編碼更有效率。算法可以應用於任何編程語言,通常期望經驗豐富的程序員至少了解該主題的基礎知識,並知道如何將算法轉換為他們正在使用的編程語言的代碼。

算法書籍

  1. Narasimha Karumanchi 的 數據結構和算法變得簡單。

    算法(和數據結構)初學者最好的教科書之一。《Data Structures And Algorithms Made Easy: Data Structures and Algorithmic Puzzles》是一本為複雜數據結構和算法提供解決方案的書。每個問題都有多種解決方案,本書使用 C/C++ 編寫。您可以使用這本書作為準備面試、考試和校園工作的指南。

  2. Aditya Bhargava 的Grokking 算法

    “Grokking Algorithms”是另一本易於理解、圖文並茂、以友好的語氣編寫的指南,教您如何將常用算法應用於程序員每天面臨的實際問題。您將從排序和搜索開始,隨著您建立算法思維技能,您將解決更複雜的問題,例如數據壓縮和人工智能。每個示例都包含圖表和完全註釋的 Python 代碼示例。

  3. Thomas Cormen解鎖的算法

    一本關於算法基礎知識的書,適用於想要擴展該主題知識的初學者和編碼專業人士,這次是作為麻省理工學院學生的大學教科書編寫的。

    “讀者將了解什麼是計算機算法、如何描述它們以及如何評估它們。他們將發現在計算機中搜索信息的簡單方法;將計算機中的信息重新排列成規定順序的方法(“排序”);如何解決可以在計算機中使用稱為“圖形”的數學結構建模的基本問題(對於建模道路網絡、任務之間的依賴關係和財務關係很有用);如何解決有關字符串(如 DNA 結構)的問題;密碼學背後的基本原理;數據壓縮基礎;甚至還有一些問題,沒有人想出如何在合理的時間內在計算機上解決,”該書的作者說。

  4. Java 中的數據結構和算法,作者 Robert Lafore。

    這是一本專門針對 Java 的教科書。除了清晰簡單的示例程序外,Robert Lafore 還在書中添加了一個研討會,作為一個可在 Web 瀏覽器上執行的小型演示程序。這些程序以圖形形式展示了數據結構的外觀及其操作方式。

    每章末尾的編程項目建議解決方案均提供給公認教育機構的教師。可以在pearson.com的講師資源中心找到該教科書的教育補充資料。

  5. 你好世界:在算法時代做人,漢娜·弗萊 (Hannah Fry)。

    Hannah Fry 的“Hello World:Being Human in the Age of Algorithms”是一本相當有趣的書,它從稍微不同的角度看待算法。作者描述了已經在醫療保健、交通、犯罪和商業領域實現重要決策自動化的算法的真正力量和局限性。

算法在線課程

  1. 算法,第一部分第二部分,由普林斯頓大學通過 Coursera 提供。

    普林斯頓的一個非常棒的完全免費課程。它涵蓋了每個認真的程序員都需要了解的有關算法和數據結構的基本信息,重點是 Java 實現的應用程序和科學性能分析。第一部分涵蓋基本數據結構、排序和搜索算法。第二部分側重於圖形和字符串處理算法。課程完成後不提供證書。

  2. 加州大學聖地亞哥分校通過 Coursera 的 數據結構和算法專業化課程。

    加州大學聖地亞哥分校和國家研究院高等經濟學院提供的另一門著名的算法和數據結構課程。該專業是理論與實踐的結合:您將學習解決各種計算問題的算法技術,並將以您選擇的編程語言實現大約 100 個算法編碼問題。

    “沒有任何其他算法在線課程能夠為您提供下一次工作面試時可能面臨的大量編程挑戰。為了讓您做好準備,我們投入了 3000 多個小時來設計我們的挑戰,以替代您通常在 MOOC 中找到的多項選擇題。抱歉,在學習算法時,我們不相信多項選擇題......或計算機科學中的任何其他內容!對於您開發和實施的每個算法,我們都設計了多個測試來檢查其正確性和運行時間——您將不得不在不知道這些測試是什麼的情況下調試您的程序!這聽起來可能很難,但我們相信這是真正理解算法如何工作和掌握編程藝術的唯一途徑,”該課程的作者說。

  3. 斯坦福大學通過 Coursera 進行的 算法專業化。

    並且這次是斯坦福大學知名大學的第三門公認的免費算法課程。本課程是為至少具有一點編程經驗的學習者介紹算法。學習者將通過多種類型的評估練習和掌握算法的基礎知識。每週都會有一個多項選擇測驗來測試您對最重要概念的理解。還有每週的編程作業,您可以在其中使用您選擇的編程語言實現講座中涵蓋的算法之一。每門課程都以選擇題期末考試結束。

YouTube 頻道和播放列表

  1. Abdul Bari 的 算法。

    Abdul Bari 的算法簡短講座列表,Abdul Bari 是一位頗受歡迎的 Y​​ouTuber,他以最簡單易懂的方式向觀眾解釋複雜的主題。

  2. Java 中的數據結構和算法關於使用 Mosh 頻道進行編程。

    “Programming with Mosh”是面向編程初學者的熱門主流 YouTube 頻道。它有很多很多關於 Java 和其他編程語言的教程,它們結構合理,介紹也很好,包括數據結構和算法的教程。如果您不想讀書和支付課程費用,這是熟悉這些主題的好方法。

  3. 麻省理工學院 6.006 算法導論,2011 年秋季,麻省理工學院開放式課程

    MIT OpenCourseWare 是麻省理工學院的一個頻道,它有很多很棒的免費視頻課程,包括關於算法的課程。整個課程包括 47 個大約一小時的課程。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION