每日算法 — 使用java实现华容道:模式数据库与A*搜索启发式
引言 华容道是中国传统益智游戏的经典代表,其目标是在有限的空间内移动各尺寸滑块,将最大的"曹操"块移至出口位置。本文将用Java实现基于模式数据库(Pattern Database,...
每日算法 — 使用java实现井字棋:Alpha-Beta剪枝与置换表优化
引言 井字棋(Tic-Tac-Toe)是最简单的完全信息博弈游戏之一,但其算法实现却涵盖了博弈树搜索的核心技术。本文将用Java实现一个带Alpha-Beta剪枝和置换表(Transposition...
每日算法 — 使用java实现约瑟夫问题:递归递推与数学公式推导
引言 约瑟夫问题(Josephus...
每日算法 — 使用java实现埃拉托斯特尼筛:素数筛法与线性筛优化
引言 素数(质数)是数论中最基础也最重要的概念之一。埃拉托斯特尼筛法(Sieve of...
每日算法 — 使用java实现树状数组:单点修改与区间查询的高效数据结构
引言 树状数组(Binary Indexed Tree,简称BIT,又称Fenwick Tree)是一种极其优雅的数据结构,它能在 O(log n) 时间内完成单点修改和前缀和查询,同时只需要 O(n)...