update recursion
This commit is contained in:
@@ -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)
|
||||
// 后序遍历
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user