資料結構演算法 Learning_code
HI I am ying_chun~
This is the way for me to learning how to write the code.
I hope I can do my best to do it.
資料結構演算法每週記事
Week_1 09/13
Week_2 09/20
Linked list(連結串列)是一種常見的資料結構,其使用node(節點)來記錄、表示、儲存資料(data),並利用每個node中的pointer指向下一個node,藉此將多個node串連起來形成Linked list,並以NULL來代表Linked list的終點
Week_3 09/27
◆堆疊
◆Last-In,First-Out
◆最早進入Stack」的資料則「最晚被取出」
◆隊列
◆First-In, First-Out
◆最早進入Queue」的資料則「最早被取出」
Week_4 10/04
◆插入排序法
◆平均時間複雜度O(n^2)
◆通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入
Week_5 10/11
◆快速排序法
◆平均時間複雜度:O(n log n)
◆從數列中挑出一個元素,稱為「基準」,有比基準值小的元素擺放在基準前面,所有比基準值大的元素擺在基準後面,遞迴地將小於基準值元素的子序列和大於基準值元素的子序列排序
Week_6 10/18
◆堆積排序法
◆平均時間複雜度:O(n log n)
◆堆積中的最大值總是位於根節點,將堆積的末端子節點作調整,使得子節點永遠小於父節點,將堆積中的所有資料重新排序,移除位在第一個資料的根節點,並做最大堆積調整的遞迴運算
Week_7 10/25
◆合併排序法
◆平均時間複雜度:O(n log n)
◆把資料“分割”成兩部分再各自進行Merge Sort,最後將兩部分在整合起來
Week_8 11/1
◆二元樹
◆每個節點最多只有兩個子節點
◆把大於節點放右子節點;小於節點放左子節點
Week_9 11/8
Week_10 11/15
◆二元搜尋樹
◆每個節點最多只有兩個子節點
◆把大於節點放右子節點;小於節點放左子節點
◆有搜尋、新增、刪除、修改功能
Week_11 11/22
◆紅黑數
◆節點是紅色或黑色
◆根是黑色
◆每個紅色節點必須有兩個黑色的子節點
◆從任一節點到其每個葉子的所有簡單路徑都包含相同數目的黑色節點
◆雜湊表
◆是資料結構的一種,利用Hash Function有效率地進行數據搜尋雜湊函數能使對一個數據序列的查詢過程更加迅速有效,通過雜湊函數,數據元素將被更快定位
Week_12 11/29
◆廣度優先搜尋演算法
◆平均時間複雜度O(V+E)
◆BFS是從根節點開始,沿著樹的寬度遍歷樹的節點。如果所有節點均被存取,則演算法中止。
Week_13 12/06
◆深度優先搜尋演算法
◆平均時間複雜度O(V+E)
◆沿著樹的深度遍歷樹的節點,儘可能深的搜尋樹的分支。當節點v的所在邊都己被探尋過,搜尋將回溯到發現節點v的那條邊的起始節點。這一過程一直進行到已發現從源節點可達的所有節點為止。如果還存在未被發現的節點,則選擇其中一個作為源節點並重複以上過程,整個行程反覆進行直到所有節點都被存取為止。
Week_14 12/13
◆最小生成樹
◆連通加權無向圖中一棵權值最小的生成樹
◆按照邊的權重順序(從小到大)將邊加入生成樹中,但是若加入該邊會與生成樹形成環則不加入該邊。直到樹中含有{\displaystyle V-1}V-1條邊為止。這些邊組成的就是該圖的最小生成樹。
Week_15 12/20
◆戴克斯特拉演算法
◆以weight總和表示path之成本,並以具有方向性之edge表示兩個vertex之間的關係

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
