码迷,mamicode.com
首页 >  
搜索关键字:divide-and-conquer    ( 248个结果
算法就是这么一回事(排序)(第三部分)
六、快速排序 快速排序是通过一种把集合中的元素按照第一个元素(这个是动态过程变化)作为标杆来分为两部分,前面一部分比他小(或等),后面一部分比它大。然后就是通过适当的程序来递归这个过程,当最后没有交换说明需要退出递归。 上图。 快速排序使用分治法(Divide and conquer)策略来把...
分类:编程语言   时间:2014-11-09 17:53:27    阅读次数:320
[算法Tutorial]分治,平摊,对手论证
今天的算法课高能的不行,对助教各种膜拜~~这里就厚颜无耻地讲讲吧,当然还有抄袭,hiahia~~1.Divide and Conquer首先,提到这个高能的问题,不得不说说那个Master Theory,简直是外挂、BUG...$$T(n) = aT(n/b) + f(n); \text{assum...
分类:编程语言   时间:2014-11-08 00:47:16    阅读次数:570
归并排序
归并(Merge)排序是将两个(或两个以上)有序表合并成一个新的有序表, 即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。 归并排序是建立在归并操作上的一种有效的排序算法。 该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。...
分类:编程语言   时间:2014-11-01 17:53:27    阅读次数:243
分治算法——Karastsuba算法
分治(Divide and Conquer)算法:问题可以分解为子问题,每个问题是可以独立的解决的,从子问题的解可以构建原问题。 Divide:中间分、随机分、奇偶分等,将问题分解成独立的子问题 Conquer:子问题的解可以单独解决,从子问题的解构建原问题最终的解 Combine:每一步将子问题产生的解进行合并得到最终的解,合并的复杂度影响最终的算法时间复杂度 Karatsuba算法是在...
分类:编程语言   时间:2014-11-01 01:03:41    阅读次数:339
二分查找
二分查找(Binary Search)算法使用了分治法(Divide and Conquer)来不断缩小查找范围,并充分利用已知的信息将查找时间复杂度降低到 O(logn)。
分类:其他好文   时间:2014-11-01 00:49:49    阅读次数:394
[Java 8] Lambda表达式对递归的优化 - 使用尾递归
递归优化 很多算法都依赖于递归,典型的比如分治法(Divide-and-Conquer)。但是普通的递归算法在处理规模较大的问题时,常常会出现StackOverflowError。处理这个问题,我们可以使用一种叫做尾调用(Tail-Call Optimization)的技术来对递归进行优化。同时,还可以通过暂存子问题的结果来避免对子问题的重复求解,这个优化方法叫做备忘录(Memoizatio...
分类:编程语言   时间:2014-10-29 10:54:45    阅读次数:395
UVA - 10245 The Closest Pair Problem
属于Divide-and-Conquer,算法课老师有讲到,就找个题目试试,思想就是不断的二分。。。考虑合并时的处理。。不解释 //============================================================================ // Name : uva10245.cpp // Author : // Versi...
分类:其他好文   时间:2014-10-19 00:06:59    阅读次数:300
归并排序算法
归并排序(Merge sort)是创建在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。一个归并排序的例子:对一个随机点的链表进行排序本文地址:http://www.cnblogs.com/archimedes/p/merge-sort...
分类:编程语言   时间:2014-10-12 02:25:07    阅读次数:255
快速排序算法
快速排序采用一种“分而治之、各个击破”的观念。快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。步骤为:1、从数列中挑出一个元素,称为 "基准"(pivot),2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基...
分类:其他好文   时间:2014-10-10 14:38:04    阅读次数:206
归并排序
算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 1 //将有序数组a[]...
分类:其他好文   时间:2014-09-28 14:31:12    阅读次数:204
248条   上一页 1 ... 20 21 22 23 24 25 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!