码迷,mamicode.com
首页 >  
搜索关键字:分治策略    ( 157个结果
分治法解大整数乘法
在某些情况下,需要处理很大的整数,它无法在计算机中精确的表述和处理。若要精确的表示大整数,就必须使用软件的方法来实现大整数的运算。最常用的解决大整数运算的方法是使用一个二重循环,其算法时间复杂度为O(m*n)(其中m,n分别为两个大整数的长度);而选用分治方法则可..
分类:其他好文   时间:2014-09-15 03:23:48    阅读次数:280
最大和子序列问题
这个问题是算法导论的一个示例,为了讲解分治。 1 //算法导论中的分治策略版本 2 3 4 #include 5 using namespace std; 6 int maxCrossSum(int a[], int begin, int mid, int end) 7 { 8 int ...
分类:其他好文   时间:2014-08-06 01:48:10    阅读次数:195
【从零学习经典算法系列】分治策略实例——快速排序(QuickSort)
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要O(nlogn)次比较。在最坏状况下则需要O(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlogn)算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 此种排序的思路是:如果在分开的时候,不是从中间位置上分界,二是按照元素的大小分开为两个一大一小的子序列(一个子序列的所有元素大于另一个子序列里的所有元素),这样的话,因为两个子序列之间的相对次序已经正确,所有在合并的时候...
分类:其他好文   时间:2014-07-31 16:58:07    阅读次数:299
【从零学习经典算法系列】分治策略实例——二分查找
二分查找算法是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组 为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。折半搜索每次把搜索区域减少一半,时间复杂度为Ο(logn)。...
分类:其他好文   时间:2014-07-27 23:52:09    阅读次数:270
算法导论专题一--排序算法(2)
上节分析了O(n^2)的算法,这节就分析O(nlgn)的算法-归并,快速和堆排序。一:综述 O(nlgn) 的算法可以分为两大类,两者所用的技术差别较大。归并和快速排序采用的是分治策略,这两者相当于一个对称的过程,一个是自顶向上合并子问题,另一个则自上向下分解子问题。而堆排序利用堆这一数据结构元素间...
分类:其他好文   时间:2014-07-22 22:36:14    阅读次数:282
分治——合并排序
分治策略中有一个经典的算法就是合并排序,这个算法的精髓也是分治二字,分而治之。将一个大规模的问题分割成若干个同样的小问题,小问题的规模很小,很容易解决,解决了小的问题后再对这些小问题的结果进行合并得到大规模问题的解答。 合并排序便是分治策略中比较经典的算法,首先是合并,两个排列有序的数列经过合并后成为有序的数组:代码如下: void _merge(int *A,int left,int mid...
分类:其他好文   时间:2014-07-18 18:00:11    阅读次数:225
分治策略结合递归思想求最大子序列和
对于 《数据结构与算法分析——C语言描述》 一书第 20 页所描述的算法 3,相信会有很多人表示不怎么理解,下面我由具体问题的求解过程出发,谈谈我自己的理解: 首先,什么是分治法呢?所谓 分治法,就是 将一个问题的求解过程分解为两个大小相等的子问题进行求解,如果分解后的子问题本身也可以分解的话,则将这个分解的过程进行下去,直至最后得到的子问题不能再分解为止,最后将子问题的解逐步合并并可能...
分类:其他好文   时间:2014-07-01 11:03:52    阅读次数:169
分治法(一)
这篇文章将讨论:1) 分治策略的思想和理论2) 几个分治策略的例子:合并排序,快速排序,折半查找,二叉遍历树及其相关特性。说明:这几个例子在前面都写过了,这里又拿出来,从算法设计的策略的角度把它们放在一起来比较,看看分治是如何实现滴。由于内容太多,我将再花一篇文章来写4个之前没有写过的分治算法:.....
分类:其他好文   时间:2014-06-18 21:06:23    阅读次数:289
交换排序:快速排序
快速排序(Quick Sort)也是一种交换排序,它在排序中采取了分治策略。 快速排序的主要思想是: 从待排序列中选取一元素作为轴值(也叫主元)。 将序列中的剩余元素以该轴值为基准,分为左右两部分。左部分元素不大于轴值,右部分元素不小于轴值。轴值最终位于两部分的分割处。 对左右两部分重复进行这样的分割,直至无可分割。...
分类:其他好文   时间:2014-06-15 15:28:14    阅读次数:301
第四章 分治策略 4.2 矩阵乘法的Strassen算法
package chap04_Divide_And_Conquer;import static org.junit.Assert.*;import java.util.Arrays;import org.junit.Test;/** * 矩阵相乘的算法 * * @author xiaojintao....
分类:其他好文   时间:2014-06-09 16:12:24    阅读次数:273
157条   上一页 1 ... 13 14 15 16 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!