[排序演算法]Insertion Sort — 插入排序法
其實插入排序法就很像平時我們在玩撲克牌時整理牌組的行為,將撲克牌依照大小插入對應的位置,插入排序法的流程是從第2個位置開始與左邊的數字(位置1)比較,然後就依循著以下的規則,與左邊的元素比大小 ,並且插入到正確的位置,直到全部的元素的由小排到大。
其實插入排序法就很像平時我們在玩撲克牌時整理牌組的行為,將撲克牌依照大小插入對應的位置,插入排序法的流程是從第2個位置開始與左邊的數字(位置1)比較,然後就依循著以下的規則,與左邊的元素比大小 ,並且插入到正確的位置,直到全部的元素的由小排到大。
何謂排序演算法呢?簡單來說就是經過一連串的步驟將數字由小排到大或是由大排到小的演算法,下圖列出幾種常見的排序演算法,像是插入排序法、氣泡排序法、合併排序法等等。
bubble sort的概念就是像泡泡一樣 ,越大的數字會漸漸的往右邊浮
簡單來說就是函式自己呼叫自己的狀況,遞迴由兩部分組成
雙指針算是一個解題蠻常用的小技巧,雙指針指的是用兩個指針對整個資料做遍歷,而雙指針又依照移動的方向性,分為對撞指針 — 反方向和快慢指針 — 同方向。
Traversal翻譯成中文就是遍歷的意思,如果要遍歷tree的每個節點的話,會有兩種方式,Breadth-First Tree Traversal和Depth-First Tree Traversal。
想必大家在刷leetcode時候,刷到特定的題目的時候都曾經看過這樣的圖片,這就是Binary tree,但在認識Binary tree之前,讓我們先來認識tree這種資料結構吧!
圖是由節點(node)和邊(edge)所組成的,一個節點可能與多個節點相連著,而這些相連的節點又被稱作相鄰節點(neighbor),圖在生活中應用的例子相當的普遍,像是人際關係的社交網路、尋找地圖最短路徑、通訊網路等等。
Linked List為抽象的資料結構,概念有點像三國的連環船,一艘船(節點)連結著下一艘船(節點),每個節點除了擁有自己的值之外也記錄自己的下一個節點是指向哪個節點,而Linked List又分為下列幾種
在理解hash table之前,先來理解hash(雜湊)吧!