这是从网上查到的概念资料,先收来~一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如...
分类:
其他好文 时间:
2014-07-20 22:30:22
阅读次数:
307
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个...
分类:
其他好文 时间:
2014-07-19 15:23:57
阅读次数:
241
首先简单谈下高速排序的特点,时间复杂度O(nLog n),最差时间复杂度O(n^2),平均时间O(nLog n).由于用到了函数栈,空间复杂度为O(lg n),最差为O(n).是一种不稳定的排序方法。基本思想是分治法,这位大大的http://blog.csdn.net/morewindows/art...
分类:
其他好文 时间:
2014-07-16 19:29:46
阅读次数:
210
算法思想:分治法,将一个序列分为两部分,分别排序,然后合并已排序序列。算法实现: 1 MERGE_SORT(A,p,r) 2 mid = (p+r)/2 3 MERGE_SORT(A,p,mid) 4 MERGE_SORT(A,mid,r) 5 MERGE(A,p,m...
分类:
其他好文 时间:
2014-07-16 00:56:42
阅读次数:
355
记录学习点滴快速排序算法是一种很有趣的算法,短小精悍,性能强劲,对于大部分情况都可以胜任,但对极端环境难以应付。快速排序我理解为:这是一个“以自我为中心的”+“分治法”思想的算法。分治法不必多说,化繁为简,那就是逐个击破。那什么是“以自我为中心”?顾名思义,就是每次都一个“我”,每个人都要围绕“我”...
分类:
其他好文 时间:
2014-07-14 08:25:25
阅读次数:
263
快速排序是一种分治排序算法。广泛认为它是解决一般问题的最佳排序算法。同插入排序一样,快速排序也属于比较排序的一种,而且不需要额外的存储空间。在处理中到大型数据集时,快速排序是一个比较好的选择。
由于快速排序是一种分治算法,因此可以用分治法的思想将排序分为三个步骤
1.分:设定一个分割值将数据分为两部分。
2.治:分别在两部分用递归的方式继续使用快速排序法。
3.合:对分割部分排序排序直至完...
分类:
其他好文 时间:
2014-07-13 15:35:44
阅读次数:
214
和分治法一样,动态规划也是通过组合子问题的解而解决整个问题的。分治法是指将问题划分为一个一个独立的子问题,递归地求解各个子问题然后合并子问题的解而得到原问题的解。与此不同,动态规划适用于子问题不是相互独立的情况,即各个子问题包含公共的子子问题。在这种情况下,如果用分治法会多做许多不必要的工作,重复求解相同的子子问题。而动态规划将每个子问题的解求解的结果放在一张表中,避免了重复求解。...
分类:
其他好文 时间:
2014-07-12 19:20:19
阅读次数:
258
题目:11129 - An antiarithmetic permutation...
分类:
其他好文 时间:
2014-07-08 20:25:10
阅读次数:
208
一,归并排序 归并排序是建立在归并操作上的一种排序算法,它采用了分治法的思想,是一种稳定的排序算法,而且归并排序的速度仅次于快速排序。时间复杂度:O(n*logn),最坏的情况:O(n*logn),空间复杂度:O(n)。从数据就可以看出:归并排序比快速排序快很多,同样为稳定排序。 ...
分类:
其他好文 时间:
2014-07-05 11:16:20
阅读次数:
208
快速排序是对冒泡排序算法的一种改进型算法,而且快速排序也采用了分治法的思想。快速排序是不稳定排序,平均时间复杂度为:O(n*logn),最坏时间复杂度为:O(n*n),空间时间复杂度:O(logn),但快速排序通常是用于排序的最佳实用的选择。快速排序的思想:从数组选取一个数(通常是第一个数)...
分类:
其他好文 时间:
2014-07-03 23:36:18
阅读次数:
296