学习更多算法系列请参考文章:死磕算法之汇总篇 快速排序是一个运用了分治法和递归算法的排序方式。 假如我们现在要排序的数组为[3,1,0,2,8,4,2]。那么在进行快速排序的时候我们先要进行一些准备: n作为一个数组中的标杆,一趟排序过后我们要把数组中所有大于n的数放在它的右边,所有小于n的放在它的 ...
分类:
编程语言 时间:
2018-06-29 22:54:20
阅读次数:
191
1.内联函数 定义:定义在类体内的成员函数,即函数的函数体放在类体内 特点:在调用处用内联函数体的代码来替换,用于解决程序的运行效率问题。一定要在调用之前定义,并且内联函数无法递归调用。 2.构造函数 与 析构函数 构造函数:用于为对象分配内存空间,对类的成员变量进行初始化,并执行其他内部管理操作。 ...
分类:
编程语言 时间:
2018-06-27 22:25:37
阅读次数:
235
一、函数递归 1. 定义: 递归调用(特殊的嵌套调用):在调用一个函数的过程中,又直接或者间接地调用了该函数本身 2. 递归有两个明确的阶段: 递推:一层层的递归调用下去,强调每进入下一层递归问题的规模都必须有所减少 回溯:递归必须有一个明确的结束条件,在满足该条件时结束递推 3. 精髓:通过不断地 ...
分类:
其他好文 时间:
2018-06-24 23:50:34
阅读次数:
185
一、定义 若一个对象部分的包含它自己,或用自己来定义自己,则称为这个对象是递归的。 二、应用原则 1、基本条件:递归过程必须一直存在至少一个不使用递归方法解决的条件。 2、进行方向:任何递归调用都必须向着“基本条件”的方向进行。 3、正确假设:总是假设递归调用时有效的。 4、适度原则:避免使用过多的 ...
分类:
其他好文 时间:
2018-06-23 17:04:12
阅读次数:
111
今天说的是栈与递归的关系,函数的递归调用和普通函数调用是一样的。当程序执行到某个函数时,将这个函数进行入栈操作,在入栈之前,通常需要完成三件事。 1、将所有的实参、返回地址等信息传递给被调函数保存。(输入参数和标记返回值地址) 2、为被调函数的局部变量分配存储区。(分配局部变量地址空间) 3、将控制 ...
分类:
其他好文 时间:
2018-06-21 22:33:37
阅读次数:
177
定义:当一个函数用它自己来定义时就称为是递归的 递归的四条基本法则: 1、基准情形。必须要有某些基准情形,它们不用递归就能求解。 2、不断推进。对于那些要递归求解的情形,递归调用必须总能够朝着一个基准情形推进。 3、设计法则。假设所有的递归调用都能运行。 4、合成效益法则。在求解一个问题的同一实例时 ...
分类:
其他好文 时间:
2018-06-21 13:41:23
阅读次数:
122
一、函数递归 什么是函数递归: 函数递归调用是一种特殊的嵌套调用,在调用一个函数的过程中,又直接或间接地调用了该函数本身。 其中,函数的递归有明确的结束条件,不能无限制的调用,否则会撑破内存,在Python中限定递归最多调用1000层。 1000层这个值是大概的数值,这个数值可以通过Python内置 ...
分类:
其他好文 时间:
2018-06-14 18:40:19
阅读次数:
181
1 什么是函数递归 函数递归调用(是一种特殊的嵌套调用):在调用一个函数的过程中,又直接或间接地调用了该函数本身 递归必须要有两个明确的阶段: 递推:一层一层递归调用下去,强调每进入下一层递归问题的规模都必须有所减少 回溯:递归必须要有一个明确的结束条件,在满足该条件时结束递推 开始一层一层回溯 递 ...
分类:
其他好文 时间:
2018-06-14 18:07:07
阅读次数:
190