- 博客(12)
- 收藏
- 关注
原创 【分治算法2.10】最接近点对问题(C++实现)
最接近点对问题的分治算法的基本思想是将问题分解为较小的子问题,然后合并子问题的解以获得原始问题的解。
2023-10-17 09:09:12
622
原创 【分治算法2.9】线性时间选择(C++实现)
线性时间选择算法(Linear-time selection algorithm)的一个经典例子是 "QuickSelect",其基本思想与 "QuickSort" 快速排序算法相似。线性时间选择算法的目标是找到一个无序列表中第 k 小的元素,而不是对整个列表进行排序。:从列表中选择一个“主元”(pivot)元素。这个主元的选择方法有很多种,可以是随机选择,或者使用一个称为“中位数的中位数”的方法。:与快速排序一样,按照这个主元将列表划分为两个子列表,一个包含小于主元的元素,另一个包含大于主元的元素。
2023-10-16 22:35:34
422
原创 【分治算法2.8】快速排序(C++实现)
快速排序(Quick Sort)是一种经典的分治策略排序算法,其基本思想是通过将一个数组分成两个子数组,其中一个子数组的所有元素都小于另一个子数组的元素,然后递归地对这两个子数组进行排序,最终将它们合并在一起以获得完全排序的数组。快速排序的平均时间复杂度为O(n log n),其中n是要排序的元素数量。
2023-10-09 22:14:58
182
原创 【分治算法2.7】合并排序(C++实现)
分治策略中合并排序(Merge Sort)算法的基本思想是将一个大的问题分解成两个或多个较小的子问题,分别解决这些子问题,然后将它们的解合并在一起以获得原始问题的解。合并排序特别适用于对大型数据集进行排序操作,其时间复杂度为O(n log n),其中n是要排序的元素数量。
2023-10-09 21:46:59
688
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人