计算机科学

从算法到系统设计,深入浅出讲解计算机核心知识

首页知识库计算机科学
【算法图解】排序算法可视化:冒泡、快排、归并
算法排序冒泡排序

【算法图解】排序算法可视化:冒泡、快排、归并

用“交换、分区、合并”三种视角图解冒泡、快排与归并排序,帮你从步骤记忆升级到过程理解,并掌握面试可复述的复杂度与选型逻辑。

2026年2月22日 阅读
【面试】前端面试高频算法题 Top 10
前端面试算法刷题

【面试】前端面试高频算法题 Top 10

前端面试里的算法题并不追求冷门,而是考察你对常见模板的掌握。本文给出 Top 10 高频题型、解法思路、复杂度和面试表达模板。

2026年2月22日 阅读
【面试】计算机网络面试题精选
计算机网络面试HTTP

【面试】计算机网络面试题精选

整理前后端常见网络面试题:TCP/UDP、三次握手、HTTPS、HTTP/1.1~3、缓存、Cookie/Session/JWT、跨域与状态码,附简洁回答模板。

2026年2月22日 阅读
【算法图解】BFS:层层推进的搜索
算法BFS

【算法图解】BFS:层层推进的搜索

BFS(广度优先搜索)像水波纹一样一层层扩散,天然适合最短路径(无权图)与层级遍历。本文讲清队列实现、visited 的必要性、复杂度、常见题型与工程化写法。

2026年1月31日 阅读
【算法图解】冒泡排序:最容易理解的排序
算法排序冒泡排序

【算法图解】冒泡排序:最容易理解的排序

冒泡排序很慢,但它是理解“比较排序”与“交换”的最佳起点。本文用逐轮冒泡过程、边界优化、稳定性分析与可运行代码,让你真正理解它为什么是 O(n²)。

2026年1月31日 阅读
【算法图解】计数排序:不比较也能排序
算法排序计数排序

【算法图解】计数排序:不比较也能排序

计数排序用“统计次数”代替比较,能在特定条件下做到 O(n+k) 的线性时间。本文讲清楚适用前提、稳定实现、空间代价与工程注意点。

2026年1月31日 阅读
【算法图解】DFS:一条路走到黑
算法DFS

【算法图解】DFS:一条路走到黑

DFS(深度优先搜索)像走迷宫:先走到底,走不通再回头。本文讲清递归/显式栈实现、visited、回溯关系、复杂度、典型题型(岛屿数量、路径搜索)与工程注意点。

2026年1月31日 阅读
【算法图解】最短路径:Dijkstra 算法
算法最短路径

【算法图解】最短路径:Dijkstra 算法

Dijkstra 解决“非负权图”的单源最短路径问题。本文用“每次确定一个最短点”的贪心直觉讲清楚它为什么正确,并给出基于优先队列的实现、复杂度、常见坑与和 BFS 的边界区分。

2026年1月31日 阅读
【算法图解】图的遍历:BFS vs DFS
算法BFS

【算法图解】图的遍历:BFS vs DFS

BFS 像水波纹扩散,DFS 像走迷宫。本文用同一张图对比两者的遍历顺序、数据结构(队列/栈)、复杂度与适用场景,并给出“最短路/连通块/路径枚举”三类题的选型口诀。

2026年1月31日 阅读
【算法图解】堆排序:用堆来排序
算法排序

【算法图解】堆排序:用堆来排序

堆排序能做到 O(nlogn) 且原地排序,是“稳定性不重要但内存敏感”场景的好选择。本文用最大堆的建堆、下沉(sift down)过程讲清楚堆排序的核心,并给出可运行实现与复杂度分析。

2026年1月31日 阅读
【算法图解】算法面试通关技巧
算法面试沟通

【算法图解】算法面试通关技巧

真正的算法面试不是“写出代码”就结束,而是沟通、建模、边界、复杂度与代码质量的综合战。本文给你一套可复用的通关流程:读题澄清、选型模板、正确性论证、复杂度、测试用例与代码细节。

2026年1月31日 阅读
【算法图解】归并排序:分治思想的典范
算法排序归并排序

【算法图解】归并排序:分治思想的典范

归并排序把“分治”体现得最完整:拆分、递归、合并。本文用逐层合并过程讲清楚为什么它是稳定的 O(nlogn),以及为什么它需要 O(n) 额外空间,并给出可运行实现。

2026年1月31日 阅读
【算法图解】单调栈:解决 Next Greater 问题
算法单调栈

【算法图解】单调栈:解决 Next Greater 问题

单调栈用“维护单调性”把看似 O(n²) 的比较问题降到 O(n)。本文讲清楚单调递增/递减栈的含义、入栈出栈时机、典型题型(下一个更大元素、每日温度、柱状图最大矩形)与代码模板。

2026年1月31日 阅读
【算法图解】前缀和:区间查询神器
算法前缀和数组

【算法图解】前缀和:区间查询神器

前缀和把“重复求和”变成一次预处理,让区间和查询从 O(n) 变成 O(1)。本文讲清一维/二维前缀和、差分数组的关系、常见题型(子数组和为 K、二维区域和)与实现细节。

2026年1月31日 阅读
【算法图解】快速排序:面试必问的排序
算法排序快速排序

【算法图解】快速排序:面试必问的排序

快排为什么快?为什么最坏会退化到 O(n²)?本文用分区(partition)过程把快排的核心讲清楚,并给出随机 pivot、三数取中、小数组插排等工程化优化,帮你写出“又快又稳”的实现。

2026年1月31日 阅读
【算法图解】滑动窗口:双指针的艺术
算法双指针滑动窗口

【算法图解】滑动窗口:双指针的艺术

滑动窗口把“枚举所有子数组”压缩成线性扫描,是字符串与数组题的高频解法。本文讲清窗口不变量、何时扩张/收缩、与前缀和的区别,并用最小覆盖子串、无重复最长子串等题型做模板化总结。

2026年1月31日 阅读
【算法图解】排序算法大比拼:什么时候用哪个
算法排序复杂度

【算法图解】排序算法大比拼:什么时候用哪个

冒泡/快排/归并/堆排/计数排序到底怎么选?本文用“稳定性、时间上界、空间、数据特征、工程约束”五个维度做对比,并给出面试可复述的选择逻辑。

2026年1月31日 阅读
【算法图解】算法面试高频 Top 20
算法面试刷题

【算法图解】算法面试高频 Top 20

面试刷题不靠数量靠结构。本文把高频题按“滑动窗口、前缀和、双指针、单调栈、并查集、BFS/DFS、最短路、堆、DP”分组,给出每组必会题目清单与背后的套路。

2026年1月31日 阅读
【算法图解】并查集:谁是你的老大
算法数据结构并查集

【算法图解】并查集:谁是你的老大

并查集(Union-Find/DSU)用“集合代表元”解决动态连通性问题。本文讲清 find/union、路径压缩、按秩合并、复杂度为何接近 O(1),并给出连通块计数与最小生成树中的典型用法。

2026年1月31日 阅读
【算法图解】分治思想:大问题拆小问题
算法分治递归

【算法图解】分治思想:大问题拆小问题

分治不是“拆开写递归”这么简单,它是一种把复杂度压下来的结构化思维。本文用归并排序、快速排序、二分查找与“最大子数组和”等经典例子,把分治的三步走、递推式与工程化落地讲清楚。

2026年1月31日 阅读
【数据结构】哈希表:O(1) 查找的秘密
数据结构哈希表Map

【数据结构】哈希表:O(1) 查找的秘密

哈希表为什么能做到“平均 O(1)”?从哈希函数、冲突处理、负载因子、扩容与 rehash 讲到工程实践与面试追问。读完你不只会用 Map/Object,还能解释它为什么快、什么时候不快。

2026年1月31日 阅读
MySQL 索引原理:揭秘 B+ 树的查询艺术
MySQL数据库原理数据结构

MySQL 索引原理:揭秘 B+ 树的查询艺术

为什么索引能让查询变快?深入解析 MySQL InnoDB 引擎的索引底层实现,从 B+ 树的结构优势到聚簇索引与二级索引的检索逻辑。

2026年1月17日 阅读
进程与线程:揭秘 Chrome 内存之谜
操作系统计算机基础内存管理

进程与线程:揭秘 Chrome 内存之谜

从操作系统底层视角剖析进程与线程的区别。深入探讨 Chrome 的多进程架构,解释其高性能背后的资源代价,以及前端开发者应如何优化内存占用。

2026年1月17日 阅读
SQL 入门:即便不是程序员,也要学会跟数据库聊天
SQL数据库CS基础

SQL 入门:即便不是程序员,也要学会跟数据库聊天

数据库不是黑盒子。学会 SQL 的 CRUD(增删改查),你就能从海量数据中精准找到你想要的。小明带你用最简单的语言攻克 SQL。

2026年1月17日 阅读
【数据结构入门】队列:公平的排队专家
数据结构队列算法

【数据结构入门】队列:公平的排队专家

队列是最重要的数据结构之一,遵循"先来先服务"原则。本文教你理解队列的原理和应用场景。

2026年1月15日 阅读
【算法图解】递归入门:函数调用自己的魔法
算法递归原理

【算法图解】递归入门:函数调用自己的魔法

递归是算法中的精髓,也是初学者的噩梦。小明带你通过生动的类比和图解,彻底理解递归的执行过程、基准情形以及如何避免死循环。

2026年1月15日 阅读
【算法图解】空间复杂度:内存也是钱
算法空间复杂度原理

【算法图解】空间复杂度:内存也是钱

时间复杂度大家都知道,但空间复杂度同样重要。小明带你理解算法对内存的消耗,以及如何在时间和空间之间做权衡。

2026年1月15日 阅读
【数据结构】栈:后进先出的艺术
数据结构原理

【数据结构】栈:后进先出的艺术

深入理解“后进先出”(LIFO)的底层原理,探索栈在函数调用、撤销操作以及表达式求值中的精妙应用。

2026年1月15日 阅读
【数据结构】数组 vs 链表:什么时候用哪个?
数据结构数组链表

【数据结构】数组 vs 链表:什么时候用哪个?

深入对比数组和链表两种基础数据结构,从内存布局、时间复杂度、实际应用场景出发,帮你彻底搞懂什么时候该用数组,什么时候该用链表。

2026年1月13日 阅读
二分查找:为什么程序员都爱它?
算法二分查找面试

二分查找:为什么程序员都爱它?

从普通查找到二分查找,用最直观的方式理解这个看似简单却深藏玄机的算法

2026年1月13日 阅读
【网络基础】HTTP/HTTPS 原理图解
HTTPHTTPS网络协议

【网络基础】HTTP/HTTPS 原理图解

用图解的方式深入理解 HTTP 协议的核心概念、请求响应流程、状态码含义,以及 HTTPS 如何保证安全通信。

2026年1月13日 阅读
时间复杂度:从"这代码怎么这么慢"到"原来如此"
算法时间复杂度面试

时间复杂度:从"这代码怎么这么慢"到"原来如此"

用最直观的方式理解时间复杂度,告别死记硬背 O(n)、O(log n),真正明白算法快慢的本质

2026年1月13日 阅读
欢迎介绍入门

欢迎来到小明的知识世界

这是 Xiaoming.wiki 的第一篇文章,介绍这个有趣的学习资源社区

2026年1月12日 阅读
【数据结构】数组:最基础也最重要
数据结构数组原理

【数据结构】数组:最基础也最重要

深入理解数组的底层原理,探索连续内存空间如何实现 O(1) 随机访问,以及在实际开发中如何权衡其优缺点。

2026年1月11日 阅读