質數篩法實戰:埃拉托斯特尼篩法 C++ 實現與性能優化指南
前言 質數篩選是數論基礎運算。本文基於埃拉托斯特尼篩法,提供生產級 C++ 實現,分析時間空間複雜度,並給出位圖壓縮、輪因子優化、段式篩法三大進階方向,滿足從嵌
最大子序列和問題:從 O(n³) 到 O(n) 的四重算法演進與工程選型
前言 最大子序列和問題 是《編程珠玑》經典案例:給定整數序列 (含正負),找出連續子數組的最大和。本文展示四種算法演進——三層暴力 O(n³)、二層優化 O(n
Java 繼承陷阱深度解析:字段隱藏 vs 方法覆寫,為什麼父子類同名字段不共享?
前言 Java 繼承機制中,「子類繼承父類所有非 private 成員」是常識,但**字段 (Field/成員變量) 不支持多態**,這導致經典的字段隱藏問題。
C 語言核心知識問答精選:類型系統、內存模型、IO 機制與運算符優先級完全指南
前言 C 語言看似簡單,實則暗藏無數細節陷阱。本文採用「自問自答」模式,精選 10 個高頻核心問題,涵蓋基本類型體系、sizeof 機制、字符編碼、有符號/無符
程序內存佈局深度解析:全局區、堆區、棧區的生命週期與工程避坑指南
前言 內存是程序運行的舞臺。理解全局/靜態區、堆區、棧區三大內存區域的分配機制、生命週期、訪問語義,是寫出無內存洩漏、無懸空指針、無緩衝區溢出健壯代碼的前提。本
八皇後問題:回溯算法經典範式與剪枝優化實戰
前言 八皇後問題是回溯算法 (Backtracking) 的教科書級案例:在 8×8 棋盤上放置 8 個皇後,使任意兩個皇後不同行、不同列、不同對角線。本文將從
非遞歸排序算法深度解析:冒泡、插入、希爾排序的原理、優化與工程實踐
前言 排序是將無序序列轉為有序的基本運算。上一篇證明了有序數據配合二分查找可將 O(n) 降為 O(log n),這正是排序的核心價值。本文聚焦非遞歸 (迭代)
查找算法全景指南:從線性掃描到哈希表的時間空間權衡藝術
前言 查找是計算機科學中最基礎、最高頻的操作之一。無論是數據庫索引、編譯器符號表、緩存系統還是業務代碼中的 Map 查詢,核心都在於如何在數據集合中高效定位目標
遞歸與棧幀深度解析:從函數調用原理到手寫模擬棧消除遞歸
前言 遞歸是解決分治、回溯、樹圖遍歷問題的利器,但其背後隱藏著棧幀管理與棧溢出風險。本文將從汇編級視角剖析函數調用棧幀變化,對比普通調用與遞歸調用的棧佈局差異,
經典面試題精講:算法、指針、作業系統與網絡核心知識總結
前言 技術面試往往聚焦於計算機科學基礎與工程實踐能力的交集。本文精選 10 道高頻面試題,涵蓋算法設計、位運算技巧、C/C++ 指針與內存模型、作業系統原理、網
C 語言結構體位域(位段)深度解析與實戰應用
前言 在 C 語言中,結構體(struct)是組織複雜數據的基石。而位域(Bit-field,又稱位段)作為結構體的一項進階特性,允許開發者以位為單位精確控制成
一步步写算法:循环与递归的本质联系与转换
核心观点 循环是递归的特例,递归与栈等价。 所有循环可改写为尾递归;所有递归可显式用栈模拟为循环。理解这一等价性,是算法设计与编程内功的关键。 1. 求和:循
一步一步寫演算法(開篇):測試驅動、漸進優化、從簡單開始
系列宣言 演算法是軟體的生命:無演算法則無軟體,電腦只是冰冷鐵疙瘩。 演算法 ≠ 純數學:必須能用程式語言落地,工程落地能力同等重要。 名字含義:① 保證「人
C 語言自學筆記(一):十個核心問題釐清基礎觀念
問題 1:為何區分低階/高階語言? 機器指令:二進位碼(如 00000010)。 機器語言:指令集合,CPU 型號不同則機器語言不同。 符號語言(組合語言):
Windows 進程間通訊:命名管道與郵槽完整實作指南
前言 前文介紹剪貼板、匿名管道僅限本機且匿名管道需父子關係。命名管道與郵槽支援跨網路進程通訊,本文詳細實作雙方模型。 一、命名管道:可靠的雙向 C/S 通訊
16 位整數位元反轉演算法:逐位交換法實現與測試驗證
演算法目標 將 16 位無號整數的位元順序完全反轉:bit 15 ↔ bit 0、bit 14 ↔ bit 1、...、bit 8 ↔ bit 7。 核心函式
修正版:單次遍歷求英文字串首個最長不重複子串(含尾部邊界修復)
背景 原版演算法在處理「字串尾部無重複字元」的情況下有 Bug,經網友指正後修復。核心邏輯不變,關鍵在迴圈結束後補檢查最後一個窗口。 修正後完整程式碼 cha