update recursion

This commit is contained in:
ranwenjie
2021-11-10 16:27:32 +08:00
parent b70bfccac2
commit 0b2ae012d0
2 changed files with 52 additions and 1 deletions
+37 -1
View File
@@ -17,14 +17,50 @@
### 递归公式
快排
[快排](../6%20Sort/README.md)
```Java
void quicksort(int *a, int left, int right){
if (left<right)//加上这个,不然有死循环,造成堆栈溢出,这也是递归结束条件
{
int i = partion(a,left,right);//使得局部有序,i作为分隔
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}
}
```
归并排
```Java
void sort(int[] nums, int lo, int hi) {
int mid = (lo + hi) / 2;
sort(nums, lo, mid);
sort(nums, mid + 1, hi);
/****** 后序遍历位置 ******/
// 合并两个排好序的子数组
merge(nums, lo, mid, hi);
/************************/
}
```
二叉树
```Java
/* 二叉树遍历框架 */
void traverse(TreeNode root) {
// 前序遍历
traverse(root.left)
// 中序遍历
traverse(root.right)
// 后序遍历
}
```