- 博客(3)
- 收藏
- 关注
原创 分治法:从原理到实践的深度解析
分治法,顾名思义,就是“分而治之”,其核心思想是将一个规模较大、难以直接解决的复杂问题,按照一定的规则拆解成若干个规模较小、结构与原问题相似的子问题;然后分别对这些子问题进行求解;最后将所有子问题的解合并起来,得到原问题的最终解。从哲学角度来看,分治法体现了“整体与部分”的辩证关系——通过将整体拆解为部分,降低每个部分的解决难度,再通过部分的解重构整体的解。这种思想并非算法领域独有,在日常生活与工作中也随处可见,例如:大型工程项目会拆解为多个子项目分别推进,再整合成果;
2025-12-22 22:44:30
875
原创 回溯法解决地图着色问题
本次实验通过7个城市的区域类型分配案例,完整实现了回溯法的核心流程,并且通过提前终止和定向校验两种剪枝策略,提升了算法效率。但如果问题规模扩大(比如20个城市),就需要更优化的剪枝策略(比如按城市度数排序,优先分配度数高的城市)。1. 合法性校验优化: is_valid 函数只检查已分配的城市( 0~city-1 ),避免了对未分配城市的无效遍历,减少了循环次数。其中 1231231 表示7个城市的区域类型分配方案,每个数字对应一个城市的类型,且相邻城市类型不重复。
2025-12-22 15:03:27
430
原创 二叉查找树(BST):基础原理与入门实现
最坏情况退化:如果插入的键值是有序的(如 1,2,3,4,5),BST 会退化为单链表,此时所有操作的时间复杂度降至 O (n)(和链表一样低效);中序遍历:遍历结果是升序排列的键值序列(这是 BST 最关键的特性之一,可直接用于排序)。① 对于树中的任意一个节点,其左子树中的所有节点的键值(key)都小于该节点的键值;② 对于树中的任意一个节点,其右子树中的所有节点的键值(key)都大于该节点的键值;情况 1:待删除节点是 “叶子节点”(无左、右子节点)。
2025-12-08 00:36:34
375
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅