C-WeiYu / Data-Structure-Algorithm

資料結構與演算法之作品集

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Welcome

About Here

在這裡記錄我學習程式的過程,不管資料結構與演算法或是其他的作品,
之後都會在這裡陸續更新,歡迎大家觀看,喜歡可以點Follow或星星或Fork。

來點正能量-♫Zootopia Welcome

如電影般的人生,充滿失敗與成功,成為自己的導演,掌控結局

自我介紹:


大家好我叫莊崴宇,目前就讀東吳大學巨資三B
對我而言課業是種負擔,而從課業中尋求樂趣藉此投入才是中心
在學習程式設計這方面狀況並不樂觀,但我享受解開問題的瞬間
喜歡充滿挑戰的人生,沉浸於成功後的愉悅與光榮,這就是我

課堂進度&筆記:

(因避免排版過於雜亂,以連結網頁內容表示上課內容)

Week1

  • 停課

Week2:Linked List

講解Linked List的基本性質及Node的組成

Week3:Stack and Queue

接連著上禮拜的Linked List,延伸至Stack與Queue結構,並講解兩者的差異

Week4:InsertionSort and QuickSort

演習課補充了InsertionSort的規則與示範,正課則講解QuickSort的運作方法

Week5

  • 放假

Week6:QuickSort and HeapSort

除了補充上上星期的QuickSort外,講了關於HeapSort的運作方法,初次踏入了Tree結構
演習課的部分教了如何使用Spyder去增加Debug的效率

Week7:Merge Sort

講解MergeSort的運作方法並補充了HeapSort的資料結構

Week8:Binary Tree By Linked List

正式踏入Tree結構,並講解如何用Linked List去理解Binary Tree

Week9:Binary Search Tree

講解Binary Search Tree,並分辨Binary Search Tree與 Binary Tree的差別

Week10:Red Black Tree

延續Binary Search Tree,以Red Black Tree解決BST不平衡的問題

Week11:Hash Table

講解Hash Function的目的與Hash Table的使用方法及目的

Week12:Breadth-First Search

介紹Bredth-First Search的運作方法

Week13:Depth-First Search

介紹Depth-First Search的運作方法並和BFS比較

Week14:Minimum Spanning Tree - Kruskal

講解Kruskal的運作方法及使用目的

Week15:Shortest Path - Dijkstra

講解Dijkstra的運作方法及使用目的並和Kruskal比較

Week16

  • 總複習

Week17

  • 期末考

Week18

  • 停課

CS50:

課程心得:

這堂課應該是人生中最煩惱但也最充實的一堂課了,雖然說每個作業都有兩個星期的時間去寫,但卻也整整花了兩個禮拜天每熬夜都三四點才可以把程式碼實現,對我來說這堂課很辛苦也值得,雖然作業經常拿到滿分,但光芒背後有著多少的陰影是大家不知道的,我的程式能力不好,甚至我自己覺得比一半的人都差,所以過程中比別人加倍努力,就像老師常說的,可怕的不是別人比你聰明,而是聰明的人比你更努力,我也常常警惕著自己,也許自己做不到最好,至少要努力追上別人的腳步。
過程中有哭有笑,還記得一開始大家完全沒辦法接受的上課過程與作業規則到後來老師、助教、同學互相討論,以討論取代情緒,一切漸漸走上軌道,我覺得這是一個很難得也很神奇的事情,或許就是因為一直以來都是老師說一就是一的教育,所以當過程過於艱難的時候就會想要放棄,但這堂課有著不同情境,老師跟學生之間彷彿有一墩橋樑建立,整個學習環境也漸漸改善,我覺得這是讓很多人不選擇放棄退選的原因,也謝謝老師跟助教過程中的教導、包容。
對我來說大三的這堂資料結構與演算法,雖然課程內容一直圍繞著演算法,但更重要的是這堂課所改變的人事物,半年前的我不是一個會自動去寫程式碼的人,甚至每次有程式碼的作業就會覺得很無聊,希望老師不會用太難的程式碼來考,但經過這堂課的洗滌後我找到了對程式碼隱含的一點熱忱,當學會怎麼把自己的想法以程式碼實現之後就會發現其實並不排斥程式碼,排斥的是把程式碼當歷史文學般背誦的錯路,雖然在體會那種成就那種爽感前要付出的很多,就連跨年夜都要自己在家繼續打code,別人還不能了解你到底在忙什麼,我很清楚,這種過程大概只有修過這堂資料結構與演算法的同學們可以理解,這是巨資大三的共同回憶吧。
最後要謝謝老師所設計的課程內容,雖然過程真的艱辛無比,但改變了很多事情,而我們也還沒溺斃;也謝謝助教,一開始看到熬夜寫到三四點的作業被改抄襲的時候心中真的是OOXX,但後來也漸漸了解了這個制度的用意,很多事就像這些成績一樣,不主動去爭取就無形中被奪走了,但主動爭取之後改拿到的終究會拿到;最後也謝謝在這堂課一起成長的同學,過程中受人幫助很多,不管是程式碼的幫忙或是互相抱怨的過程。
「如果明天是生命的最後一天,今天會用什麼樣的態度來活著?」不敢說會做多麼偉大多麼瘋狂的事,至少讓某個世界因為自己而有一點的不同。

作品集:

資料結構與演算法

CodeSignal

陸續將自己程式基礎補齊的足跡

LeetCode

裡面有我在LeetCode慢慢累積的點滴

HTML

放上關於我在大學所做的html

學習之地:

課外學習

About

資料結構與演算法之作品集


Languages

Language:Jupyter Notebook 99.2%Language:Python 0.8%