演算法筆記:四大搜尋策略完全指南(線性、二分、BST、Hash)
前言 搜尋是資料庫與 ERP 系統的核心功能。本文假設資料唯一且無重複,系統介紹四種搜尋策略:線性搜尋、二分搜尋、二元搜尋樹、雜湊表,並分析其時間複雜度與適用場
演算法筆記:非遞迴排序法詳解(冒泡、插入、希爾)
前言 排序是資料處理的基石。上一篇比較了線性搜尋與二分搜尋的效能差距:百萬筆資料線性搜尋平均需 50 萬次比較,二分搜尋僅 20 次。既然排序能大幅提升查詢效能
C 語言實作:統計輸入單詞長度與字元出現頻率的直方圖
前言 近期研讀《C 語言程式設計 第二版》時,嘗試完成書中習題,其中兩題特別具有代表性: 編寫程式,列印輸入中單詞長度的直方圖。 編寫程式,列印輸入中各字元出
C 語言實作不重複隨機序列:Fisher-Yates 洗牌演算法的記憶體高效變體
需求:產生 0 到 N-1 的隨機排列,每個數字恰好出現一次。最直覺的「隨機產生 + 檢查重複」在 N 較大時會陷入極端惡化的重試迴圈 (耦合佔用問題)。本文介
不良代碼展示:雙重循環比較兩數組差異的性能災難與 Set 優化重構
代碼審查中常見的「能跑通但上線炸裸」典型案例:用雙層循環比較兩個字串陣列的差異,時間複雜度 O(n×m),資料量一大直接拖垮系統。 ❌ 反面教材:雙重循環暴力
C 語言移位運算完整指南:邏輯與算術右移、循環移位實作
移位運算看似簡單,卻是 C/C++ 面試與嵌入式開發的高頻考點。本文系統整理有號/無號左移右移的語義差異、標準規定與實作細節,並提供循環移位的標準巨集實作。
不使用暫存變數交換兩整數:加減法與 XOR 異或法深度解析
面試經典題目:在不引入第三個暫存變數的前提下,交換兩個整數變數的值。看似簡單,實則藏著整數溢位與位運算的深層陷阱。本文以極端數值 int a = 2³¹−1(I
Qt GUI 主視窗關閉事件處理:確保背景程序正確終止
在開發 Qt GUI 應用程式時,常會遇到一個棘手的問題:當使用者點擊視窗關閉按鈕時,某些阻塞型的背景執行緒或子程序可能仍在運行。若不妥善處理,這會導致資源洩漏
C# ref 與 out 關鍵字深度解析:從適用場景到 IL 層面的本質差異
ref 與 out 同樣能讓方法修改呼叫端變數,但設計意圖、編譯器限制、IL 行為截然不同。本文從適用場景切入,層層深入至值類型/引用類型語義差異、IL 指令對
C99 柔性陣列成員:不完整陣列的標準化用法與動態結構體實作
C89/C++ 標準禁止零長度陣列 (int arr[0]),但部分編譯器 (GCC/MSVC) 作為擴展支援。C99 引入柔性陣列成員,以標準化方式解決「結構
Hello World 程式生命週期深度解析(一):編譯器選項、CRT 庫與入口點機制
Hello World 是每位程式設計師的入門儀式,但其背後隱藏的編譯鏈接、執行時庫 (CRT)、作業系統載入機制卻鮮為人知。本系列透過 CRT 原始碼分析、反
Hello World 程式背後的故事(二):從進程建立到 CRT 入口的完整旅程
承接上篇「編譯器選項與 CRT」,本文聚焦 Windows 下進程建立後、主線程啟動、CRT 初始化至 main/WinMain 入口的完整調用鏈。 1. 進
C++ 類大小深度測試:空類、虛函數、靜態成員、單/多重繼承、虛繼承完整分析
C++ 類的記憶體佈局直接影響物件大小、效能與多態行為。本文通過系統性測試,揭示 sizeof 在各種繼承、虛函數、靜態成員組合下的具體數值與底層原理,包含虛表
MFC 對話框顯示後異步執行代碼:定時器與 PostMessage 兩種模式詳解
在 MFC 應用程式中,OnInitDialog() 執行過長會導致對話框延遲顯示,造成使用者感知卡頓。解決方案是將耗時初始化移至對話框顯示完成後異步執行。本文
C語言入門:第一個程式結構、主函數規則與基礎語法規範
從 Java 轉學 C 語言,首要任務是理解程式結構、編譯模型與基礎語法差異。本文透過三個漸進式範例,建立 C 語言程式架構的直觀認知。 第一個 C 程式:H
C語言基礎數據類型、常量與變量完整指南
掌握 C 語言的類型系統、常量表示法與變量定義規範,是寫出正確、可移植程式的基石。本文系統整理基本數據類型分類、常量的多種表示形式、變量定義與賦值規則,並釐清易
網路資料處理緩衝區與緩衝池 C# 實作:高效能記憶體重用模式
在高併發網路程式設計中,頻繁分配/釋放位元組陣列會造成嚴重的 GC 壓力與記憶體碎片。緩衝池模式透過預先分配固定大小的緩衝區並循環重用,顯著降低記憶體分配開銷。
DOS 環境下 8 位 256 色 BMP 顯示:VGA 模式程式設計完整實作與檔案格式深度解析
在 DOS 時代,直接操作 VGA 顯示記憶體(0xA0000)是圖形程式設計的核心技能。本文提供完整的 C 語言實作,展示如何在 320×200、256 色模