- 博客(7)
- 收藏
- 关注
原创 网络流问题
网络流理论主要研究有向加权图中从源点到汇点的最大流量问题。核心概念包括阻塞流(无法增加流量的流)和最大流(网络能承载的最大流量)。Ford-Fulkerson算法通过寻找增广路径和添加反向边来求解,但存在效率问题。改进算法包括Edmonds-Karp(每次选最短路径)和Dinic's算法(使用分层图找阻塞流)。Dinic's算法通过构建level graph并迭代寻找阻塞流,具有较好的时间复杂度O(edges×vertices²)。这些算法为网络流量优化提供了理论基础和实用工具。
2025-12-07 15:59:31
646
原创 背包问题详解
有N件物品和一个容量为V的背包。第i件物品体积是ci,价值是wi。求解将哪些物品装入背包可使这些物品的占用空间总和不超过背包容量,且价值总和最大。每一种物品选或不选,一共2n种情况,可以通过递归实现。背包容量为5。
2025-11-11 20:15:14
699
原创 单链表算法
更改将要插入节点的next,指向下一个节点。原理:甲乙速度不同,在直线上跑步不会相遇。如果绕圈跑,则最终一定会相遇。p.next = n;插入的节点的前一个节点指向插入节点。找到插入位置,即将要插入的节点的前一个节点。将该节点指向移除节点的下一个节点。找到移除节点的前一个节点。(从内存中释放移除节点)
2025-11-02 18:06:43
420
原创 大小端问题
位变量做加/减/乘时,进位都是从低字节向高字节走。大端则要“先取最高字节,地址再递减”或额外加偏移,早期没有高速缓存的年代要多一路加法器。包/秒做转发,真正瓶颈是查表、DMA、缓存, 做一次 `ntohl` 只花 1 cycle(现代。2. 早期 8 位 → 16 位扩展平滑 8086 是 16 位,但要兼容 8 位 8080。小端保证:`mov al, [0]` 拿到的是同一个 8 位值,不管后面再接 16 位指令。如果用小端,WireShark 里得先翻转 16/32 位才能读,排错效率直线下降。
2025-10-26 18:50:07
223
原创 汉明码 纠错码
需要注意虽然汉明码可以适应任意大小数据,但其只能检测出一位错误。当数据变大,错误发生的概率变大,很有可能发生多。注意到 0 位置不在任何一个组内,无法校验是否出现错误, 所以将0位置设为校验码,使得整个数据中1的个数为偶数。异或运算实际上和依次检查每个组实质上相同,检查每个组的奇偶性容易在硬件上实现,异或在软件实现上非常简洁。对于一些数据,当其中发生错误时,我们希望通过算法发现错误并纠正。检验时,将所有为1的位的位置标号进行异或即统计每个组的奇偶性。为偶数个 所以该组内要么没有错误要么有偶数个错误。
2025-10-26 18:34:14
178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅