Contents
從零開始用面試題實現資料結構、圖演算法和排序演算法的指南!內容包含陣列、連結串列、圖形演算法和排序。在每一章你將了解每種演算法或資料結構的理論背景,然後跟著講師逐步用 Python 編寫程式碼。大多數進階的演算法都密切仰賴這些主題,因此這些知識基礎絕對值得你去了解。 這些原理可以用於幾個領域:投資銀行、人工智能或股票市場上的電子交易演算法。
從這 23 小時的課程,你將學到
- 理解陣列和連結列表
- 理解棧和佇列
- 理解樹狀資料結構(二元搜索樹)
- 了解平衡樹(AVL 樹和紅黑樹)
- 理解堆資料( heap data )結構
- 理解雜湊(hashing)、雜湊表( hash tables )和字典( dictionaries )
- 理解資料結構和抽像資料類型的區別
- 理解圖遍歷( graph traversing, BFS 和 DFS)
- 了解最短路徑演算法,例如 Dijkstra 方法或 Bellman-Ford 方法
- 理解最小生成樹(Prims 演算法)
- 了解排序演算法
- 能夠開發自己的演算法
- 掌握好演算法思維
- 能夠檢測和糾正低效的程式碼片段
要求
- Python 基礎知識 ( 請參考 Python 程式設計學習地圖 )
- 一些理論背景(大O符號)
課程說明
本課程是關於資料結構、演算法和圖( 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 和 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 – 最短路徑問題 (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 與 Prim 的處理方法):
- 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
- 點選這個✨優惠連結( 特價 NT370 起)✨ 非 IT 認證的課程用 NT390 起的優惠連結 可能拿到更好的價格喔, 試試看! | Udemy 永久擁有課程 ( 在電腦瀏覽器登入,點選“優惠連結”後再回想要的課程介紹中點選“報名參加課程”即可取得 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程

也許你會有興趣
- [線上課程] 使用 Python 學習資料結構和演算法並通過工作面試!
- Python 程式設計學習地圖
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
發表迴響