![](https://img-blog.csdnimg.cn/a04240eaae2b455291c85ad73431fa3c.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法分析课
文章平均质量分 71
记录算法分析与设计课程的经典题目
辣鲨椒鱼
这个作者很懒,什么都没留下…
展开
-
分治递归--线性时间选择算法及其实现
在计算机科学中,找到数组中第k个最小元素是一个常见的问题。常规的做法是对数组进行排序,然后取第k个元素作为结果。然而,排序整个数组的时间复杂度为。原创 2023-10-18 19:46:24 · 880 阅读 · 1 评论 -
算法分析课之汉诺塔问题(Hanoi)递归思想
Hanoi 详解及尾递归优化原创 2023-09-07 22:47:11 · 970 阅读 · 0 评论 -
算法分析课之Perm全排列函数
全排列算法及不重复显示数值优化(递归)原创 2023-09-05 23:07:04 · 668 阅读 · 1 评论 -
递归分治--快速排序算法QuickSort
快速排序(QuickSort)是一种基于“分治法”思想的排序算法,由英国计算机科学家 Tony Hoare 在1959年首次提出。其基本思想是通过选取一个轴点(基准值),将待排序序列划分为左右两个子序列,并通过递归地对子序列进行排序,最终实现整个序列有序。快速排序之所以如此高效,是因为它的平均时间复杂度为 O(nlogn),并且在实践中通常表现优于其他排序算法。原创 2023-09-20 00:07:15 · 255 阅读 · 1 评论 -
动态规划-凸多边形最优三角形(权值和)
给定一个具有N个顶点的多边形,每个顶点都有一个权值。我们的目标是将该多边形划分为若干个不相交的凸三角形,并使这些凸三角形的权值和最小。原创 2023-10-17 21:24:54 · 252 阅读 · 0 评论 -
递归分治--归并排序算法
归并排序(MergeSort)是一种基于“分治法”思想的排序算法,由冯·诺伊曼在1945年首次提出。它采用分治策略,将待排序序列划分为若干个子序列,递归地对每个子序列进行排序,然后将已排好序的子序列归并成一个新的有序序列。因此,归并排序之所以如此稳定可靠,是因为它可以保证在任何情况下都能产生正确的结果,并且时间复杂度为 O(nlogn)。原创 2023-09-20 00:11:59 · 253 阅读 · 1 评论 -
分治递归--二维最近点对问题
如果点的个数小于等于1个,则返回一个较大的默认值表示不存在最近的点对。然后,根据递归基本情况判断点的个数,如果只有2个点,则直接计算这两个点之间的距离。如果点的个数大于2个,则我们将点集分割为两部分,并对左右两部分分别递归调用 findClosestPairDistance 函数,得到左右子集的最近点距离。我们找到左右子集的最小距离,并将其作为初始的最小距离。历遍所有的点,并将横坐标与中线横坐标的距离小于最小距离的点放入一个临时的点集 stripPoints 中。最后,我们返回最小的距离作为结果。原创 2023-09-20 00:21:05 · 881 阅读 · 1 评论