归并排序(Merge sort)是创建在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。算法描述:将待排序数据分为两部分(递归调用归并排序)。对两部分数据进行归并操作。时间复杂度:T(N) = 2 * T(N/2) + cN = 2.....
分类:
编程语言 时间:
2015-02-16 00:22:14
阅读次数:
267
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:
Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和图片上传
LaTex数学公式
UML序列图和流程图
离线写博客
导入导出Markdown文件
丰富的快捷键
快捷键
加粗 Ctrl + B
斜体 Ctrl + I
引用 Ctrl...
分类:
其他好文 时间:
2015-02-13 18:39:12
阅读次数:
179
版权所有,欢迎转载,转载请注明出处,谢谢
生成1~n的排列
递归思想:先输出所有以1开头的排列(这一步是递归调用),然后输出以2开头的排列(这一步是递归调用),接着是以3开头的排列······最后才是以n开头的排列。
//vs2012测试代码
#include
using namespace std;
void print_permutation(int n, i...
分类:
编程语言 时间:
2015-02-07 11:49:57
阅读次数:
178
继上次我写了篇文章《在XSLT样式表中使用莱布尼兹级数计算π的近似值》后,我发现在XSLT中使用模板的递归调用,有下面两个缺点:1)易读性差,有失灵活;2)效率低下。因此,我又想了一个新的策略实现在XSLT中的一...
分类:
其他好文 时间:
2015-02-06 15:18:13
阅读次数:
181
因为自己之前在block中需要递归调用自己本身,而没有用weak。导致在[self removeFromSuperview]方法时,CPU使用率一只高达百分之百。。block一直持有self。。。fix:__weak 当前类 *weakSelf = self;[weakSelf 递归调用的方法];这...
分类:
移动开发 时间:
2015-02-05 18:16:35
阅读次数:
163
算法之递归(3)- 链表操作递归(2)尝试了一个单链表的遍历,同时又分析了如何添加自己的操作,是在递归调用之前,还是在递归调用之后。今天,打算将问题深入一下,即添加相应的操作在递归的过程中。(免责声明:下面的解法纯属娱乐 ,另外,示例代码未经编译和调试,许多想法未经实践验证。)查找链表当中倒数第N个...
分类:
编程语言 时间:
2015-02-05 13:23:43
阅读次数:
161
在算法分析中,当一个算法中包括递归调用时,其时间复杂度的分析会转化为一个递归方程求解。实际上,这个问题是数学上求解渐近阶的问题,而递归方程的形式多种多样,其求解方法也是不一而足,比較经常使用的有下面四种方法: (1)代入法(Substitution Method) 代入法的基本步骤是先猜測递归方程....
分类:
编程语言 时间:
2015-01-26 14:51:29
阅读次数:
289
关于递归相信大家已经熟悉的不能再熟悉了,所以笔者在这里不就不多费口舌,不懂的读者们可以在博客园中找到很多与之相关的博客。下面我们直接切入正题,开始介绍尾递归。尾递归 普通递归和尾递归如果仅仅只是从代码的角度出发来看,我们可能发现不了他的特点,所以笔者利用两张堆栈上的图来展示具体的差距在哪,...
一、什么是分治 有很多算法是递归的:为了解决一个给定的问题,算法要一次或多次递归调用其自身来解决的子问题。这些算法通常采用分治策略:将原问题划分为n个规模较小而结构与原问题相似的子问题;递归地解决这些子问题,然后再合并其结果,就得到原问题的解。二、分治算法的三个步骤 分治模式在每一层递归上都...
分类:
编程语言 时间:
2015-01-24 21:18:28
阅读次数:
296
12.2.1 递归的序列表达式
函数式编程中主要的控制流结构是递归。我们已经在很多例子中,写的普通函数就使用过递归,它能够解决命令式编程中的循环问题,而不需依赖可变状态。当我们想写一个简单的递归函数时,要使用 let rec 关键字,这样,就能函数以递归方式调用自身。
用于组合序列的 yield! 结构,也可以在序列表达式中执行递归调用,所以,我们同样可以使用函数编程的方法,生成序列。清...
分类:
其他好文 时间:
2015-01-21 16:37:06
阅读次数:
152