【考試向】資料結構筆記(AVL Tree)
【考試向】資料結構筆記(AVL Tree) 歡迎你點入本篇文章!我是 LukeTseng,本系列文章主要整理自學資料結構的一些知識,如果你喜歡我的文章,麻煩您不吝嗇的在文章底下按下一顆愛心,或是追蹤我唷~ 高度平衡二元搜尋樹(Height Balanced BST) 學習資料結構時,從基礎的二元搜尋樹(BST)跨越到平衡樹是一個非常關鍵的里程碑,在撰寫演算法或面對高壓的程式解題環境時,維持資料結構的高效能,往往是避免 Time Limit Exceeded(TLE)的核心。 要理解「高度平衡」,得要先知道原本的二元搜尋樹(Binary Search Tree, BST)有什麼致命缺點。 在理想狀態下,BST 的查詢、新增和刪除時間複雜度都是 $O(\log N)$。 但如果我們依序插入一組已經排序好的資料(例如:1, 2, 3, 4, 5),這棵樹的節點就會全部往右邊長,退化成一條類似鏈結串列(Linked List)的結構(左或右斜樹 Skewed Tree),此時它的時間複雜度就會跌至 $O(N)$,是我們不樂見的。 高度平衡二元搜尋樹(Height Balanced BST...
【計算機網路筆記】3.8 Evolution of Transport-Layer Functionality
【計算機網路筆記】3.8 Evolution of Transport-Layer Functionality Hello Guys, I’m LukeTseng. 歡迎你也感謝你點入本篇文章,本系列主要讀本為《Computer Networking: A Top-Down Approach, 8th Edition》,就是計算機網路的聖經,會製作該系列也主要因為修課上會用到。若你喜歡本系列或本文,不妨動動你的手指,為這篇文章按下一顆愛心吧,或是追蹤我的個人公開頁也 Ok。 傳輸層已經不再是傳統 TCP 與 UDP 非黑即白的天下,為了解決現代網路高併發、低延遲的需求,傳輸層功能正朝向多樣化發展,甚至將實作提升到了應用層(以 QUIC 為代表)。 三十年來,TCP 和 UDP 一直是網際網路的兩大主力,然而,TCP 為了保證可靠性,有著嚴格的順序限制與繁瑣的連線建立過程,導致了隊首阻塞(HOL Blocking)」與較高的延遲。 而 UDP 雖然快,卻不提供可靠傳輸,隨著雲端服務和影音串流的爆發,開發者需要一種既有 TCP 的可靠與安全,又能像 UDP 一樣輕量快速的解決方案。...
【計算機網路筆記】3.7 TCP Congestion Control
【計算機網路筆記】3.7 TCP Congestion Control Hello Guys, I’m LukeTseng. 歡迎你也感謝你點入本篇文章,本系列主要讀本為《Computer Networking: A Top-Down Approach, 8th Edition》,就是計算機網路的聖經,會製作該系列也主要因為修課上會用到。若你喜歡本系列或本文,不妨動動你的手指,為這篇文章按下一顆愛心吧,或是追蹤我的個人公開頁也 Ok。 3.7.1 Classic TCP Congestion Control(經典 TCP 壅塞控制) TCP 壅塞控制(Congestion Control)是 TCP 協定中用來避免發送端把整個網路癱瘓的一套機制,與流量控制(Flow Control)不同,它保護的對象是網路而非接收端。 網路資源是共享的,如果每個終端系統(End System)的 Process 都毫無節制把資料塞入網路中,會導致路由器的 buffer 溢位,進而造成封包大量遺失,最終引發壅塞崩潰(Congestion collapse),讓所有人的吞吐量(Throughput)...
【JavaScript 筆記】函數(上) - part 5
【JavaScript 筆記】函數(上) - part 5 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 基本函數語法 宣告一個函數使用關鍵字 function 宣告,如下: 1234function functionName(parameter1, parameter2) { // 函數主體(要執行的程式碼) return returnValue;} 範例: 123456function greet(name) { console.log(`哈囉,${name}!`);}greet("LukeTseng"); // 哈囉,LukeTseng!greet("Amy"); // 哈囉,Amy! 函數宣告有完整的 Hoisting,可以在宣告之前就呼叫,JS 引擎會自動把整個函數上升(Hoisting)到最頂端: 12345sayHi(); // Hi!fu...
【考試向】資料結構筆記(堆積樹)
【考試向】資料結構筆記(堆積樹) 歡迎你點入本篇文章!我是 LukeTseng,本系列文章主要整理自學資料結構的一些知識,如果你喜歡我的文章,麻煩您不吝嗇的在文章底下按下一顆愛心,或是追蹤我唷~ 堆積(Heap) 定義 堆積是一棵二元樹,定義如下: 必為一棵完整二元樹(Complete Binary Tree) 所謂完整(Complete):除了最底層之外,上面每一層的節點都必須是填滿的,而且最底層的節點,必須由左至右依序填入,中間不能有空缺。 為什麼這樣規定?因為這樣的結構非常緊湊,可用一維陣列來做儲存,而不用指標(Pointers),在記憶體管理和讀取速度上非常有效率。 必須滿足堆積性質(Heap Property) 根據節點數值的大小關係,Heap 主要分為兩種: 最大堆(Max-Heap):任何一個父節點的值,都 $\ge$ 其子節點的值,表示整棵樹的根節點(Root)一定會是這棵樹中的最大值。 最小堆(Min-Heap):任何一個父節點的值,都 $\le$ 其子節點的值,表示整棵樹的根節點(Root)一定會是這棵樹中的最小值。 調整 Heap 假設...
【JavaScript 筆記】運算子、型別轉換 - part 4
【JavaScript 筆記】運算子、型別轉換 - part 4 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 運算子(Operator) JS 有這些類型的運算子: 類別 英文名稱 運算子 算術運算子 Arithmetic Operators + - * / % ** ++ -- -(一元) +(一元) 指定運算子 Assignment Operators = += -= *= /= %= **= <<= >>= &= |= ^= &&= ||= ??= 比較運算子 Comparison Operators == != === !== > >= < <= 邏輯運算子 Logical Operators && || ! !! ?? 位元運算子 Bitwise Operators & | ^ ~ >> << >&...
TCP/IP 封包解析
TCP/IP 封包解析 紀錄 2026/04/08 計算機網路課程。 TCP/IP 封包格式 TCP/IP 封包的 Header 預設就是 20 個 Byte。 TCP 格式: Image Source:https://www.geeksforgeeks.org/computer-networks/tcp-ip-packet-format/ Source Port、Destination Port 各佔 2 Byte(16 bit),通常題目只要求到這邊就好。 Sequence Numbers 佔 4 Byte(32 bit)。 IP 格式: Image Source:https://www.geeksforgeeks.org/computer-networks/tcp-ip-packet-format/ Version 佔 4 bit(1 個 16 進位數字)。 IHL(Internet Header Length)也佔 4 個 bit。 Type-of-Service 佔 1 個 byte。 Total Length 佔 2 byte。 Flags 佔 3 byt...
【C++ 筆記】運算子多載(Operator Overloading)範例
【C++ 筆記】運算子多載(Operator Overloading)範例 很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 2x2 矩陣 以下範例多載了這些運算子: 運算子 型態 說明 [] 成員 存取矩陣元素,如 A[0][1] -(一元) 成員 取負矩陣 +, -, * 成員 矩陣加減乘 +=, -=, *= 成員 複合指派 ==, != 成員 相等比較 *(純量) friend scalar * matrix 及 matrix * scalar <<, >> friend 標準輸出入串流 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364...
【JavaScript 筆記】語句規則 - part 3
【JavaScript 筆記】語句規則 - part 3 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 分號(; Semicolons) 在 JS 中,分號 ; 用來標示一個語句的結束,類似中文的句號。 123let name = "LukeTseng"; // 這是一個語句let age = 21; // 這是另一個語句console.log(name); // 這也是一個語句 ASI:自動插入分號機制 JS 中會有 ASI(Automatic Semicolon Insertion)的機制,當沒加分號時 JS 引擎會在解析時自動判斷在哪裡補上分號,這就是為什麼省略分號也不會報錯。 以下這兩個撰寫的方式都 ok: 12345let x = 10;let y = 20;let x = 10let y = 20 ASI 的陷阱 ASI 不是萬能的,在某些情況下會誤判,導致其程式行為完全不符合預期: 1234567fun...
【JavaScript 筆記】語法(資料型別、變數) - part 2
【JavaScript 筆記】語法(資料型別、變數) - part 2 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 資料型別(Data Type) Image Source:https://www.geeksforgeeks.org/javascript/variables-datatypes-javascript/ JavaScript 中所有的值都屬於某種資料型別,型別分為兩大類: Primitive(原始型別)的值儲存的是值本身。 Non-Primitive(非原始型別)儲存的是記憶體位址的參考(Reference)。 另外,JS 的語法也定義了兩個型別的值: Literals(實字):一個固定值,就是常數的意思。 Variables(變數):隨時會變動的值。 用 typeof 查看型別 typeof 運算子可在 Console 中直接查看任何值的型別: 原始型別(Primitive) 1. Number(數字) JS 的 Number 型別同...
【JavaScript 筆記】從零開始的 JS - part 1
【JavaScript 筆記】從零開始的 JS - part 1 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 簡介(Introduction) JavaScript 接下來都簡稱 JS,JS 是一個輕量級的程式語言,也是一個腳本語言,也是一種讓網頁動起來的程式語言。 JS 是一種直譯式(Interpreted)、動態型別、跨平台的腳本語言。 直譯式:程式碼不需要事先編譯,瀏覽器直接讀取、直接執行。 動態型別:變數的型別不需要事先宣告,執行時自動判斷。 跨平台:能在瀏覽器、伺服器(Node.js)、甚至手機 App 上執行。 物件導向 + 函式導向:支援多種程式設計風格,彈性非常高。 JS 的小故事 JavaScript 是由 Brendan Eich 在 1995 年於 Netscape 公司任職時創造,前後只花了 10 天就設計完成。雖然名字裡有 Java,但和 Java 其實是完全不同的語言,當年取這個名字純粹是行銷噱頭,純粹只是想要蹭而已。 之後 Ja...
【CSS 筆記】CSS 建立 - part 2
【CSS 筆記】CSS 建立 - part 2 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 要建立 CSS,會有三種方式: 外部 CSS(External CSS) 內部 CSS(Internal CSS) 行內 CSS(Inline CSS) 外部 CSS(External CSS) 此為最常用、最推薦的方式,這種方式會把所有 CSS 寫在一個獨立的 .css 檔案中,再透過 <link> 標籤連結到 HTML 。 首先建立 styles.css: 123456789/* styles.css */h1 { color: steelblue; font-size: 32px;}p { color: gray;} 然後在 HTML 的 <head> 加入連結: 12345678910<!DOCTYPE html><html><head> <link...
【Uva 題庫解題】C++ 個人解題筆記 - part6
【Uva 題庫解題】C++ 個人解題筆記 - part6 本次題庫擷取自 CPE 2026/03/24 歷屆考題:https://cpe.mcu.edu.tw/cpe/test_data/2026-03-24 1. Uva 10591 - Happy Number PDF Source:https://onlinejudge.org/external/105/10591.pdf Uva Online Judge:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1532 Zerojudge:https://zerojudge.tw/ShowProblem?problemid=d442 難度:★☆☆☆☆ 題目翻譯: 令正整數 $S_0$ 的平方和表示為 $S_1$。同理,令 $S_1$ 的平方和用 $S_2$ 表示,依此類推。若對某個 $i ≥ 1$ 的 $S_i = 1$,則原始整數 $S_0...
【考試向】資料結構筆記(二元搜尋樹)
【考試向】資料結構筆記(二元搜尋樹) 歡迎你點入本篇文章!我是 LukeTseng,本系列文章主要整理自學資料結構的一些知識,如果你喜歡我的文章,麻煩您不吝嗇的在文章底下按下一顆愛心,或是追蹤我唷~ (自平衡二元搜尋樹如 AVL Tree 跟紅黑樹會在後續單獨撰寫) 二元搜尋樹(BST, Binary Search Tree)定義 簡單來說,二元搜尋樹就是一棵「自帶排序規則」的二元樹。 在二元搜尋樹中,對於樹上的每一個節點,都必須嚴格遵守以下四條規則: 左子樹中所有節點的值,都小於根節點的值。 右子樹中所有節點的值,都大於根節點的值。 左右子樹本身也必須各自是一棵二元搜尋樹。 每個節點的值都不同。 另外,二元搜尋樹也可以是一個空集合,上述為非空集合所要遵循的規則。 如下圖是一棵二元搜尋樹: Image Source:二元搜尋樹 - 維基百科,自由的百科全書 右子樹(根節點的右邊:10、14、13)皆大於根節點的值,而至於那個 13,因為他在左子樹,所以得要小於他的樹根 14,符合 BST 的定義。 左子樹(根節點的左邊:3、1、6、4、7)皆小於根節點的值,其下的左右子樹也...
【論文閱讀】FastTracker: Real-Time and Accurate Visual Tracking
【論文閱讀】FastTracker: Real-Time and Accurate Visual Tracking paper : https://arxiv.org/abs/2508.14370 github : https://github.com/Hamidreza-Hashempoor/FastTracker 註:本文僅供個人學習用途、筆記用,內容斟酌參考,請注意事實查核。(This article is for learning and noting. Content of article consider for reference. Note that fact checking.) 我個人算是 CV 領域的新手,有些我不懂的地方會加上自己寫的註釋,敬請見諒。 Abstract 1. Problem: Conventional multi-object tracking (MOT) systems are predominantly designed for pedestrian tracking and often exhibit limited general...






