|
17 | 17 | |
18 | 18 | ├──Package |
19 | 19 | │ ├── Sort 排序篇 |
20 | | - │ │ ├── BubbleSort.php 冒泡排序 |
21 | | - │ │ ├── QuickSort.php 快速排序 |
22 | | - │ │ ├── ShellSort.php 希尔排序 |
23 | | - │ │ ├── MergeSort.php 归并排序 |
24 | | - │ │ ├── InsertSort.php 插入排序 |
25 | | - │ │ └── SelectSort.php 选择排序 |
| 20 | + │ │ ├── BubbleSort.php 冒泡排序 |
| 21 | + │ │ ├── QuickSort.php 快速排序 |
| 22 | + │ │ ├── ShellSort.php 希尔排序 |
| 23 | + │ │ ├── MergeSort.php 归并排序 |
| 24 | + │ │ ├── InsertSort.php 插入排序 |
| 25 | + │ │ └── SelectSort.php 选择排序 |
26 | 26 | │ │ |
27 | | - │ ├── Query 查询篇 |
28 | | - │ │ ├── BinaryQuery.php 二分查找 |
29 | | - │ │ └── QulickQuery.php 快速查找 |
| 27 | + │ ├── Query 查找篇 |
| 28 | + │ │ ├── BinaryQuery.php 二分查找 |
| 29 | + │ │ ├── InseertQuery.php 插入查找 |
| 30 | + │ │ ├── FibonacciQuery.php 斐波那契查找 |
| 31 | + │ │ └── QulickQuery.php 快速查找 |
30 | 32 | │ │ |
31 | 33 | │ └── Other 其他 |
32 | | - │ ├── MonkeyKing.php 猴子选大王 |
33 | | - │ └── BigSmallReplace.php Hello World 输出 Olleh Dlrow |
| 34 | + │ ├── MonkeyKing.php 猴子选大王 |
| 35 | + │ ├── DynamicProgramming.php 动态规划 |
| 36 | + │ ├── Fibonacci.php 斐波那契数列 |
| 37 | + │ ├── StealingApples.php 偷苹果求余 |
| 38 | + │ ├── HanoiGames.php 汉诺塔游戏 |
| 39 | + │ ├── GetCattle.php 牛年求牛 |
| 40 | + │ ├── OnlyNumbers.php 求唯一数 |
| 41 | + │ └── BigSmallReplace.php Hello World 输出 Olleh Dlrow |
34 | 42 | │ |
35 | 43 | ├──LICENSE |
36 | 44 | └──README.md |
@@ -108,6 +116,13 @@ return i; |
108 | 116 | > #### 可变空间,这部分空间的主要包括动态分配的空间,以及递归栈所需的空间等。这部分的空间大小与算法有关。 |
109 | 117 | 一个算法所需的存储空间用f(n)表示。S(n)=O(f(n)) 其中n为问题的规模,S(n)表示空间复杂度。 |
110 | 118 |
|
| 119 | +## 递归和循环的简单比较: |
| 120 | + 1、从程序上看,递归表现为自己调用自己,循环则没有这样的形式。 |
| 121 | + 2、递归是从问题的最终目标出发,逐渐将复杂问题化为简单问题,并且简单的问题的解决思路和复杂问题一样,同时存在基准情况,就能最终求得问题,是逆向的。而循环是从简单问题出发,一步步的向前发展,最终求得问题,是正向的。 |
| 122 | + 3、任意循环都是可以用递归来表示的,但是想用循环来实现递归(除了单向递归和尾递归),都必须引入栈结构进行压栈出栈。 |
| 123 | + 4、一般来说,非递归的效率高于递归。而且递归函数调用是有开销的,递归的次数受堆栈大小的限制。 |
| 124 | + |
| 125 | + |
111 | 126 | ## 一起进步学习 |
112 | 127 | 1. Fork 我的项目 |
113 | 128 | 2. Pull Request |
|
0 commit comments