一,递归:
1.含义:是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。
2.从循环到递归的转化:递归的核心是方法调用方法形成循环,递归过程中方法无法改变,所以可以通过改变参数或者限制条件等方法跳出递归,不要忘记递归出口。
3.循环转化为递归的判断条件:相似性(改参数构建相似性),函数有出口。
二,全排列:
1.含义:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。通俗点讲就是枚举n位字符串的所有组合(用递归思想对一位一位排)
2.例子:1,2,3的全排列有3!=6种,分别为1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1
三,快速排序:
- 含义:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
- 例子:
四,暴力枚举:
1.理解:在忘记算法怎么写或者想不出简洁的代码进行编译时,可以通过大量的重复代码进行暴力解题,但是要注意是否有时间限制。