首页 > 试题广场 >

以下选项中采用分治方法的算法有()

[不定项选择题]
以下选项中采用分治方法的算法有()
  • 堆排序算法
  • 插入排序算法
  • 归并排序算法
  • 二分查找算法
  • 快速排序算法
是不是少选了一个A,在各种排序方法中,如归 [1]    并排序、堆排序、快速排序等,都存在有分治的思想 [1]    。
发表于 2015-09-11 09:55:15 回复(8)
堆排序只是一个个删除然后重建,并没有分治的思想
发表于 2017-03-23 17:01:22 回复(0)
还有二分查找也是分治算法,所以我认为答案应该是ACDE
发表于 2016-09-03 22:34:42 回复(1)
二分查找是减治法吧
发表于 2019-03-07 17:55:38 回复(0)

计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。

这个技巧是很多高效算法的基础,如排序算法快速排序归并排序)、傅立叶变换快速傅立叶变换)。

另一方面,理解及设计分治法算法的能力需要一定时间去掌握。正如以归纳法去证明一个理论,为了使递归能够推行,很多时候需要用一个较为概括或复杂的问题去取代原有问题。而且并没有一个系统性的方法去适当地概括问题。

分治法这个名称有时亦会用于将问题简化为只有一个细问题的算法,例如用于在已排序的列中查找其中一项的折半搜索算法(或是在数值分析中类似的勘根算法)。这些算法比一般的分治算法更能有效地运行。其中,假如算法使用尾部递归的话,便能转换成简单的循环。但在这广义之下,所有使用递归或循环的算法均被视作“分治算法”。因此,有些作者考虑“分治法”这个名称应只用于每个有最少两个子问题的算法。而只有一个子问题的曾被建议使用减治法这个名称。
(维基百科)
发表于 2019-03-07 11:02:23 回复(0)
插入排序是减治法吧
发表于 2019-03-04 00:17:08 回复(0)
分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同,二分法不过是K==1。。。
堆排序分两步:树的构建和重排,没有用到分治。
编辑于 2018-09-05 10:02:25 回复(0)
二分不是减治法吗!
发表于 2017-10-20 13:48:34 回复(0)
分治思想和分治算法不大一样吧
发表于 2017-09-07 15:30:44 回复(0)
我想说时间复杂度里有log2(N)的都有分治思想
发表于 2017-03-15 17:01:02 回复(0)
堆排序法也是分治算法的一种
发表于 2016-08-29 15:40:17 回复(0)
归并排序也是   分治算法,少选择了!   并排序、堆排序、快速排序!!!!
发表于 2016-04-05 21:06:21 回复(0)