AI算法 每日算法 — 使用java实现Karger算法:随机收缩与全局最小割 问题背景 全局最小割(Global Minimum Cut)问题要求:给定一个无向带权图 G=(V, E),找到将图分成两个非空连通分量的边集,使得这些边的权重之和最小。 与 s-t...
AI算法 每日算法 — 使用java实现Lyndon分解:Duval算法与字符串周期性分析 Lyndon 词的定义 Lyndon 词是指严格小于其所有非平凡后缀的字符串。形式化地说,字符串 w 是 Lyndon 词当且仅当对于所有真后缀 v(v 不等于 w),都有 w 小于 v(按字典序)。...
AI算法 每日算法 — 使用java实现Bentley-Ottmann:扫描线线段交点检测 问题背景 线段交点检测是计算几何中的经典问题:给定平面上 n 条线段,找出所有相交的线段对及其交点。 暴力法需要检查所有 C(n, 2) = O(n²) 对线段,当 n...
AI算法 每日算法 — 使用java实现D-ary Heap:d叉堆与优先队列优化 二叉堆的局限 二叉堆(Binary Heap)是实现优先队列的经典数据结构,其插入和删除操作均为 O(log n)。然而在某些场景下,二叉堆并非最优选择:...