fbpx

Python 的演算法和資料結構 (面試 Q&A )

一個最新的演算法指南,從頭開始教你實現,內容包含陣列、連結串列、圖形演算法和排序。大多數進階的演算法都密切仰賴這些主題,因此這些知識基礎絕對值得你去了解。 這些原理可以用於幾個領域:投資銀行、人工智能或股票市場上的電子交易演算法。

從這 18.5 小時的課程,你將學到

  • 理解陣列和連結列表
  • 理解棧和佇列
  • 理解樹狀資料結構(二元搜索樹)
  • 了解平衡樹(AVL 樹和紅黑樹)
  • 理解堆資料( heap data  )結構
  • 理解雜湊(hashing)、雜湊表( hash tables )和字典( dictionaries )
  • 理解資料結構和抽像資料類型的區別
  • 理解圖遍歷( graph traversing, BFS 和 DFS)
  • 了解最短路徑演算法,例如 Dijkstra 方法或 Bellman-Ford 方法
  • 理解最小生成樹(Prims 演算法)
  • 了解排序演算法
  • 能夠開發自己的演算法
  • 掌握好演算法思維
  • 能夠檢測和糾正低效的程式碼片段

要求

課程說明

本課程是關於資料結構、演算法和圖( graph )。 我們將在 Python 程式語言中實現這些問題。 我強烈建議您自己多次鍵入這些資料結構和演算法,以便很好地掌握它們。

那麼你將在這門課程中學到什麼?

Section 1:

  • setting up the environment
  • differences between data structures and abstract data types

Section 2 – Arrays:

  • what is an array data structure
  • arrays related interview questions

Section 3 – Linked Lists:

  • linked list data structure and its implementation
  • doubly linked lists
  • linked lists related interview questions

Section 4 – Stacks and Queues:

  • stacks and queues
  • stack memory and heap memory
  • how the stack memory works exactly?
  • stacks and queues related interview questions

Section 5 – Binary Search Trees:

  • what are binary search trees
  • practical applications of binary search trees
  • problems with binary trees

Section 6 – Balanced Binary Trees (AVL Trees and Red-Black Trees):

  • why to use balanced binary search trees
  • AVL trees
  • red-black trees

Section 7 – Priority Queues and Heaps:

  • what are priority queues
  • what are heaps
  • heapsort algorithm overview

Section 8 – Hashing and Dictionaries:

  • associative arrays and dictionaries
  • how to achieve O(1) constant running time with hashing

Section 9 – Graph Traversal:

  • basic graph algorithms
  • breadth-first
  • depth-first search
  • stack memory visualization for DFS

Section 10 – Shortest Path problems (Dijkstra’s and Bellman-Ford Algorithms):

  • shortest path algorithms
  • Dijkstra’s algorithm
  • Bellman-Ford algorithm
  • how to detect arbitrage opportunities on the FOREX?

Section 11 – Spanning Trees (Kruskal’s and Prim’s Approaches):

  • what are spanning trees
  • what is the union-find data structure and how to use it
  • Kruskal’s algorithm theory and implementation as well
  • Prim’s algorithm

Section 12 – Sorting Algorithms

  • sorting algorithms
  • bubble sort, selection sort and insertion sort
  • quicksort and merge sort
  • non-comparison based sorting algorithms
  • counting sort and radix sort

在課程的第一部分,我們將學習基本的資料結構,例如連結串列 ( linked lists )、堆疊 ( stacks )、佇列 ( queues )、二元搜索樹 ( binary search tress )、堆積 ( heaps ) 和一些進階的,如 AVL 樹和紅黑樹。第二部分將關於圖形生成樹 ( spanning trees )、最短路徑演算法和圖形走訪 ( graph traversing ) 等演算法。我們將盡可能地優化每個資料結構。

在每一章我將要討論每種演算法或資料結構的理論背景,然後我們將逐步用 Python 編寫程式碼。

大多數進階的演算法都密切仰賴這些主題,因此這些知識基礎絕對值得你去了解。 這些原理可以用於幾個領域:投資銀行、人工智能或股票市場上的電子交易演算法。研究機構主要使用Python 作為程式語言:有許多的程式庫 (從機器學習到復雜網路) 開放給大眾使用。

感謝您加入課程,讓我們開始吧!

目標受眾

  • 這門課程適合在Python有基本知識的人

講師簡介

Holczer Balazs   軟體工程師 ( 更多講師主講課程介紹 )

我叫 Balazs Holczer。 我來自匈牙利布達佩斯。我有作為物理學家的資格,後來我決定取得應用數學碩士學位。 目前我在一家跨國公司擔任模擬工程師。 自從大學以來,我一直對演算法和資料結構及其實現尤其感興趣 (尤其是用Java實現)。 後來我熟悉了機器學習技術、人工智能 、數值方法和配方,如求解微分方程、線性代數、內插法和外插法。 這些事情在以下幾個領域可能被證明是非常非常重要的:軟體工程 、研發或投資銀行。 對於如 Black-Scholes 模型或 Merton 模型等定量模型,我特別的沈迷。 定量分析師每天使用這些演算法和數值技術,所以在我看來,這些主題絕對值得學習。

英文字幕:有

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

使用 Notion 來做上課筆記?

udemy 的課程講座數量動輒上百個,如果你要使用 Notion 當作是線上課程的筆記輔助工具,為這些講座建立與組織筆記是一件耗時且沒效率的工作

為了解決這個問題,Soft & Share 開發一個 chrome extension – LN+ for udemy ,可以根據 udemy 線上課程的課程大綱幫你自動建立成 Notion 筆記資料庫並產生筆記與課程的雙向關聯讓您專心上課與寫筆記就好,不用再煩惱課程筆記要放哪裡的問題!

🛫了解 LN+ for udemy 更多功能介紹請參考 – Learning Notes Plus for udmy


報名參加課程

Sponsored by Udemy


🛫使用關鍵字連結獲得更多線上學習資訊?請參考這個網頁說明


也許你會有興趣


幫我們個小忙!

使用 e-mail 追蹤 Soft & Share

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: