在前端 JS、后端 Java 等開發(fā)中,匿名函數(shù)(箭頭函數(shù)、Lambda、匿名內(nèi)部類)與閉包是高頻使用但易混淆的概念 —— 比如循環(huán)綁定事件時(shí)索引亂掉、外部變量修改后匿名函數(shù)...
在前端 JS、后端 Java 等開發(fā)中,匿名函數(shù)(箭頭函數(shù)、Lambda、匿名內(nèi)部類)與閉包是高頻使用但易混淆的概念 —— 比如循環(huán)綁定事件時(shí)索引亂掉、外部變量修改后匿名函數(shù)...
在之前的編譯鏈接博文中,我們提到printf通過 “過程鏈接表(PLT)” 調(diào)用 C 標(biāo)準(zhǔn)庫,而實(shí)現(xiàn)這一動態(tài)關(guān)聯(lián)的核心組件就是動態(tài)加載器(Windows 下叫ntdll.dl...
在編程中,我們寫完代碼后雙擊運(yùn)行就能看到結(jié)果,但 “代碼文本” 到 “可執(zhí)行程序” 之間到底經(jīng)歷了什么?本文將以一段包含全局變量、靜態(tài)變量、常量的 C 代碼為例,用 GCC ...
QWT6.2.0 之 MinGW 64-bit 編譯 一、QWT 概述 QWT(Qt Widgets for Technical Applications)是遵循 LGPL ...
復(fù)雜度分析是衡量算法效率的核心指標(biāo),它忽略硬件、語言等環(huán)境差異,聚焦算法本身的 “執(zhí)行效率”(時(shí)間)與 “資源占用”(空間)隨數(shù)據(jù)規(guī)模增長的變化規(guī)律。以下分兩部分詳解分析方法...
每次聽到 “動態(tài)規(guī)劃”,是不是總覺得它滿是復(fù)雜公式,一學(xué)就忘?其實(shí)它的核心邏輯特別貼近生活 —— 就像我們解決復(fù)雜問題時(shí),習(xí)慣先拆成小問題,再一步步推進(jìn)。今天咱們用 3 個(gè)生...
1. 寫在前面:為什么要掌握這 2 種搜索? 日常開發(fā)中,搜索需求分兩類:一類是 “從有序列表里找特定值”(比如查 10 萬條用戶 ID),另一類是 “從關(guān)聯(lián)結(jié)構(gòu)里找路徑 /...
1. 寫在前面:為什么要掌握這 3 種排序? 日常開發(fā)中,從 “給 100 條用戶考勤數(shù)據(jù)按時(shí)間排序” 到 “給 1 萬條訂單按金額排序”,排序是高頻需求。而冒泡排序、快速排...
在數(shù)據(jù)結(jié)構(gòu)的實(shí)戰(zhàn)應(yīng)用中,B + 樹是數(shù)據(jù)庫索引的 “核心引擎”—— 它通過精巧的內(nèi)存結(jié)構(gòu)設(shè)計(jì),將磁盤 IO 次數(shù)降到最低,支撐千萬級數(shù)據(jù)的高效查詢。本文將聚焦兩大核心:一是拆...
上一篇我們學(xué)了二叉搜索樹(BST)—— 它靠 “左小右大” 規(guī)則實(shí)現(xiàn)快速查詢,但有個(gè)致命漏洞:如果插入有序數(shù)據(jù)(比如 1→2→3→4→5),會直接退化成鏈表,查詢效率從 O ...
如果你已經(jīng)懂了二叉樹的基礎(chǔ)遍歷,可能會問:“二叉樹除了遍歷,還能解決什么實(shí)際問題?”—— 答案是 “高效的排序和查詢”。比如要從 10 萬條用戶 ID 中找某條記錄,數(shù)組遍歷...
如果你第一次接觸二叉樹,可能會覺得 “樹狀結(jié)構(gòu)” 比數(shù)組、鏈表復(fù)雜 —— 但其實(shí)它就像你家的 “家族樹”:爺爺是根,爸爸和叔叔是爺爺?shù)暮⒆樱愫托值芙忝檬前职值暮⒆?,最晚輩?..
—— 查 10 萬條數(shù)據(jù)里的 “用戶 ID=10086”:數(shù)組遍歷 10 萬次,哈希表 1 次就夠 —— 這就是哈希表的查詢魔力 學(xué)完數(shù)組、棧、隊(duì)列,你一定發(fā)現(xiàn)了一個(gè)痛點(diǎn):“...
之前講棧是 “先進(jìn)后出的疊盤子”,而隊(duì)列是 “先進(jìn)先出的排隊(duì)”—— 比如外賣訂單 “先下單先處理”、消息推送 “先發(fā)送先接收”,核心是 “只能從隊(duì)尾加、隊(duì)頭刪”。這篇和棧的實(shí)...
棧的實(shí)現(xiàn)過程拆解:數(shù)組和鏈表如何一步步造一個(gè)棧? 這篇咱們不繞彎,直接從 “造棧” 的角度出發(fā),分別用數(shù)組和鏈表實(shí)現(xiàn)一個(gè)簡單的 “商品 ID ?!保ù孀罱鼮g覽的商品 ID),...
——1000 條數(shù)據(jù)中間插一條:數(shù)組要挪 999 次,鏈表改 2 個(gè)指針就夠 —— 這就是鏈表的靈活之處 學(xué)完數(shù)組,很多人會問:“數(shù)組查得快,但中間增刪太麻煩,有沒有能靈活改...
——10 萬條數(shù)據(jù):數(shù)組找一條需遍歷 10 萬次,哈希表 1 次即得 —— 這就是數(shù)據(jù)結(jié)構(gòu)的魅力 提到數(shù)組,很多人只知道 “是存數(shù)據(jù)的列表”,但說不清它在內(nèi)存里到底長什么樣,...
在前四篇中,我們已理清內(nèi)存性能的核心指標(biāo)、不同場景的內(nèi)存特點(diǎn),本篇將聚焦 “落地”—— 從代碼選型到架構(gòu)監(jiān)控,給出 5 個(gè)能直接用在項(xiàng)目里的內(nèi)存優(yōu)化技巧,幫你既提性能又省資源...
在前面的系列文章中,我們先后探討了內(nèi)存的基礎(chǔ)概念、語言層的內(nèi)存問題(泄漏 / 溢出)、QT 的父子對象管理,以及.NET 的 GC 機(jī)制 —— 這些都聚焦于 “程序如何使用內(nèi)...