Contents
課程簡介
學習基礎電腦科學演算法背後的原理,這些演算法是在頂尖的科技公司的面試中會被問到的
課程介紹:English 简中
從這 6.5 小時的課程,你會學到
- 在面試中有更高的機會得到一份工作的一部分是能夠解決運算問題
- 在程式設計面試中使用多種工具
- 更好地理解基礎電腦科學演算法背後的原理
- 成為一個更好的問題解決者
要求
- 任何程式語言的基本知識
- 基礎數學知識
課程說明
這門課的內容?
在這門課程中,我們將在令人興奮的演算法世界中邁出第一步。 如果你從來沒有學過演算法,不要害怕。 演算法並不像人們通常認為的那麼難。 我相信任何一個程式設計師都可以掌握解決問題和演算法的藝術,只要他或她有追求成功的動機。 事實上,我相信大多數演算法可以很容易理解,如果它們被解釋清楚和簡單的方式。
考慮到我知道開始會有多難,因為我曾經有過相同的經歷,我已經把我的知識和經驗投入到這門課程中,來幫助你們邁出掌握演算法的第一步,讓你們離夢想的工作更近一步。
本課程是如何組織的?
第一部分: 引言
在這一部分,我將介紹課程的材料和結構。
第二部分: 演算法分析
在第二部分,我們將討論演算法分析。 對於你們中的一些人來說,這將是你們進入演算法世界的第一步,你們將理解為什麼這是一個如此重要的主題。
我們將學到幾件事:
首先,我們將學習分析的重要性,以及為什麼我們必須分析我們的解決方案。
然後我們將重點討論大O( Big-O )符號語言,它基本上是一種允許我們通過識別演算法的輸入大小增加時的行為來分析程式執行時間的語言。
之後,我們將關注一種特定型別的符號,稱為大O(Big-O) 符號,我們將使用大O 符號來比較演算法。
最後,我們將通過運算給定演算法的時間和空間複雜度來實踐這些概念。
第三部分: 排序
排序是世界上最常見的演算法之一,如果你環顧四周,你會發現很多應用程式都使用排序演算法來按照一定的順序排列列表元素。 元素不一定是數字,它們可以是字串,也可以是一些按日期排序的事件。
在本節中,我們將學習幾種排序演算法:
- 氣泡排序
- 選擇排序
- 插入排序
- 合併排序
- 快速排序
- 計數排序
對於每個演算法,我們將確定時間和空間的複雜性,並比較權衡。
在本節的最後,您將學習最重要的排序演算法,並且根據需要進行排序的資料的型別和範圍,您將能夠確定使用哪種演算法最好。
第四部分: 二元搜尋
本節致力於電腦科學中的一個基本搜尋演算法: 二元搜尋。
首先介紹了該演算法的基本想法和實現方法。
然後,我們將探索二元搜尋的一些變化,以及如何實現它們:
- 查詢輸入陣列中第一次出現目標值
- 查詢輸入陣列中目標值的最後出現次數
- 查詢輸入陣列中目標值出現的次數
Section 5: BONUS: Interview Problems
第五部分: 額外獎勵: 面試問題
這一部分是一個特殊的獎勵部分,在這裡我將釋出詳細的面試問題的解決方案。 我鼓勵你們在討論中釋出一些有趣的問題,每一到兩個星期我會選擇新的問題,並在這個部分發佈一個新的視訊,我們在這裡解決這些新的問題。
我也鼓勵你釋出一些問題,關於你不知道如何解決的問題,或者你的程式碼中是否有一些錯誤,你不知道為什麼你的程式不運作
目標受眾
- 為程式設計面試做準備的軟體開發人員
- 想要學習更多基本演算法和解決問題的軟體開發人員
- 電腦科學本科生和研究生
- 任何想要啟動演算法知識的人
講師簡介
Branko Fulurija 專業程式設計導師,2級微軟實習生,5年以上程式設計經驗,全端開發人員
你好我是 Branko。
我在一個教育中心做了兩年多的程式設計導師,在那裡我教演算法和解決問題,並為學生參加國家和國際程式設計競賽做準備。
去年,作為 Office 團隊的一員,我在微軟進行了為期5個月的實習。 2018年夏天,我開始在微軟進行第二次實習。 我是泡泡杯評委團隊的一員,該團隊負責建立程式設計挑戰——由微軟組織的國際程式設計競賽。
我喜歡競爭性的程式設計,自2013年以來,我已經參加了一些競賽並獲得了獎項,比如 IOI (國際資訊學奧林匹克) ,BOI (資訊學中的巴爾幹奧林匹克) ,以及 ACM-ICPC。
和我的朋友們一起,我參加並贏得了多項程式設計馬拉松比賽。
在過去的兩年裡,我參加了一個組織全國奧林匹克節目的團隊。
我也作為一個自由工作者和私人專案的端開發工作。
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
優惠資訊
如何購買這門課程比較划算?可以參考課程折扣優惠方案。