题目描述:求数组的最大值和最小值,并且计算比较次数思路:(1)普通思路是遍历一遍,得比较2*N次(2)分治,具体计算可以参考书上内容,算法时间复杂度是O(logn) 1 #include 2 #include 3 #include 4 #include 5 #include 6 #incl...
分类:
其他好文 时间:
2014-06-26 17:13:38
阅读次数:
170
1Comparable接口Comparabled接口强行对实现它的每个类的对象进行整体排序。实现此接口的对象列表(和数组)可以通过Collections.sort(和Arrays.sort)进行自动排序。2分治算法分治算法的基本思想是将一个问题分解为几个规模较小的子问题,这些子问题相互独立且与原问题...
分类:
其他好文 时间:
2014-06-26 15:23:07
阅读次数:
176
1Iterable接口实现这个接口的对象被允许成为 "foreach" 语句的目标2 动态规划动态规划的基本思想是将待求解的问题分解为若干个子问题,按顺序求解子问题。前一子问题的解,为后一子问题的求解提供了有用的信息。动态规划算法和分治法的基本思想比较类似,区别在于动态规划解决的问题可以分解为重叠子...
分类:
其他好文 时间:
2014-06-26 12:18:28
阅读次数:
226
题目:编程求解,输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m。要求将所有的可能组合列出来。分析:分治的思想。可以把问题(m,n)拆分(m - n, n -1)和(m, n - 1)。注意点:1、n大于m时,可直接从n = m出开始搜索 2、结束条件:n list ...
分类:
其他好文 时间:
2014-06-25 09:14:33
阅读次数:
198
问题
快速排序,这是一个经典的算法,本文给出几种python的写法,供参考。
特别是python能用一句话实现快速排序。
思路说明
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。
(1) 分治法的基本思想
分治法的基本思想是:将原问题分解为若干个规模更小但结构与原...
分类:
编程语言 时间:
2014-06-25 09:02:20
阅读次数:
289
算法一:快速排序算法
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来。
快速排序使用分治法(Divideandconquer)策略来把一个串...
分类:
其他好文 时间:
2014-06-25 08:29:57
阅读次数:
178
poj 1007 Quoit Design(分治)...
分类:
其他好文 时间:
2014-06-22 15:56:34
阅读次数:
137
归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
算法步骤:
1. 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
2. 设定两个指针,最初位置分别为两个已经排序序列的起始位置
3. 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到...
分类:
其他好文 时间:
2014-06-22 14:22:14
阅读次数:
187
Description: Implement pow(x,n).分析: 求幂次运算,典型的分治算法来解。 因为pow(x,n/2)*pow(x,n/2) 有着重复运算,分治法就会非常快O(log n) 1 class Solution { 2 public: 3 double findval...
分类:
其他好文 时间:
2014-06-21 07:26:08
阅读次数:
162
归并排序是建立在归并操作上的一种有效的排序算法。该算法是採用分治法(Divide and Conquer)的一个很典型的应用。首先考虑下怎样将将二个有序数列合并。这个很easy,仅仅要从比較二个数列的第一个数,谁小就先取谁,取了后就在相应数列中删除这个数。然后再进行比較,假设有数列为空,那直接将还有...
分类:
其他好文 时间:
2014-06-20 15:28:28
阅读次数:
153