
算法与数据结构
文章平均质量分 50
算法与数据结构
我不会c语言
这个作者很懒,什么都没留下…
展开
-
二叉树前序、中序、后序遍历递归与非递归版本、层序遍历
文章目录二叉树的层序遍历二叉树的前序遍历递归非递归二叉树的后序遍历递归非递归二叉树的中序遍历递归非递归 二叉树的层序遍历 思路:层序遍历采用队列即可。每次操作就是进行一层的遍历,将当前一层的值存进vector,并且如果当前节点的左右节点不为空,就丢进队列。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;原创 2021-02-11 14:03:45 · 222 阅读 · 2 评论 -
归并排序
归并排序基本思想 归并排序是每次选取当前序列的中点,分为两部分,继续递归下去,直到左右两部分已经有序,然后合并的话,利用一个数组从小到大存下来左右两部分的值,然后从左端点到右端点依次赋值即可,存两部分的值其实是用到了双指针的思想 代码 #include<stdio.h> const int N=1e5+50; int a[N],temp[N]; void merge_sort(int l,int r){ if(l>=r) return ; int mid=l+r>&原创 2021-01-29 22:45:23 · 88 阅读 · 0 评论 -
快速排序
原理 本质其实是一个分治的过程,每次选定一个基准,将小于等于基准的都移动到左边,将大于等于基准的都移动都右边。然后继续递归跑基准左右两部分。 代码实现 #include<stdio.h> const int N=1e5+50; int a[N]; void quick_sort(int l,int r){ if(l>=r) return ; int i=l-1,j=r+1,x=a[l+r>>1]; while(i<j){ do i+原创 2021-01-26 00:05:12 · 91 阅读 · 0 评论