fbpx

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

Contents

從零開始用面試題實現資料結構、圖演算法和排序演算法的指南!內容包含陣列、連結串列、圖形演算法和排序。在每一章你將了解每種演算法或資料結構的理論背景,然後跟著講師逐步用 Python 編寫程式碼。大多數進階的演算法都密切仰賴這些主題,因此這些知識基礎絕對值得你去了解。 這些原理可以用於幾個領域:投資銀行、人工智能或股票市場上的電子交易演算法。

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

  • 理解陣列和連結列表
  • 理解棧和佇列
  • 理解樹狀資料結構(二元搜索樹)
  • 了解平衡樹(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 和 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 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

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

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: