
算法设计
文章平均质量分 91
该部分是HNU算法设计与分析课程的笔记,具体可搜索https://github.com/xzxg001/algorithm-lab,有具体的实验代码实现
xzxg001
https://github.com/xzxg001
展开
-
算法设计1_分治
文章从递归基础入手,详细阐述了阶乘、Fibonacci数列等递归概念,并通过Ackermann函数、排列问题、整数划分等案例展示了分治策略的威力。文章还涉及了二分搜索、大整数乘法、Strassen矩阵乘法等优化算法,以及棋盘覆盖和循环赛日程表问题。最后,文章分析了合并排序和快速排序的时间复杂度,提供了对分治法的全面理解。原创 2024-12-09 15:20:46 · 764 阅读 · 0 评论 -
算法设计2_动态规划
这篇文章介绍了动态规划的基本概念和几个经典案例,包括最大字段和、最大公共子序列、01背包问题、矩阵连乘和凸多边形最优三角剖分问题。文章详细阐述了这些问题的最优子结构和递推关系,并提供了相应的动态规划解决方案。同时,还探讨了如何求解具有单调性子序列的问题,如最长单调递增子序列的求解方法,并引入了Dilworth定理来解释相关问题。原创 2024-12-09 15:19:51 · 659 阅读 · 0 评论 -
算法设计3_贪心
介绍了贪心算法的基本原理和应用。文章通过活动安排、背包问题、最优装载、最优前缀编码树、最小生成树和Dijkstra最短路径等案例,详细阐述了贪心算法的策略选择、子问题解决、可行解构建和最优解证明。每个案例都包括问题定义、算法实现和时间复杂度分析,展示了贪心算法在解决优化问题中的有效性。文章适合对贪心算法感兴趣的读者学习和参考。原创 2024-12-09 15:39:52 · 1217 阅读 · 0 评论 -
算法设计4_回溯
这篇内容主要介绍了回溯法在解决组合优化问题中的应用,包括01背包问题、符号三角形问题、n后问题、图着色问题等,分析了它们的时间复杂度,并提供了相应的回溯算法实现。摘要:文章探讨了回溯法解决多种组合优化问题,分析了时间复杂度,并给出了算法实现。原创 2024-12-09 15:44:05 · 1090 阅读 · 0 评论 -
算法设计5_分支限界法
介绍了分支限界法的基本概念和应用。分支限界法是一种通过系统地搜索问题的解空间树来找到最优解的算法,它通过广度优先或最小耗费优先的方式修剪不能得到最优解的子树。文章详细阐述了分支限界法的步骤,包括定义解空间、确定解空间的树结构、搜索策略等,并讨论了队列式FIFO分支限界和优先队列分支限界。此外,文章还探讨了0-1背包问题、装载问题和TSP问题在分支限界法中的应用,并比较了回溯法与分支限界法的不同,以及回溯法与穷举法的区别。原创 2024-12-09 15:47:50 · 581 阅读 · 0 评论 -
算法设计6_随机化算法
探讨了随机化算法的基本特征、数值随机化算法以及蒙特卡洛算法。文章首先解释了随机化算法的随机性,包括同一实例多次执行可能产生不同结果,以及解的正确性和时间复杂度的随机性。接着,通过案例介绍了如何使用随机数值算法近似计算圆周率和定积分,展示了算法执行时间与解的精确度之间的关系。文章还讨论了蒙特卡洛算法,强调了其在求解准确解问题中的应用,以及获得正确解的概率与算法执行时间的关系。最后,介绍了拉斯维加斯算法和舍伍德算法,这两种算法都能保证找到正确的解,但后者通过加入随机性来消除最坏情况下的性能差异。原创 2024-12-09 15:51:23 · 1061 阅读 · 0 评论