
数据结构
文章平均质量分 50
独钓烟云
这个作者很懒,什么都没留下…
展开
-
基础算法与数据结构模板
1.排序算法快速排序#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int Arr[N]; void qsort(int l,int r){ int t = Arr[l]; int i = l; int j = r; while(i<j){ while(Arr[j]>=t&&i<j) j--; while(Arr[i]<=t&&i原创 2021-04-24 10:30:11 · 196 阅读 · 0 评论 -
基础算法与数据结构板子
1.排序算法快速排序#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int Arr[N]; void qsort(int l,int r){ int t = Arr[l]; int i = l; int j = r; while(i<j){ while(Arr[j]>=t&&i<j) j--; while(Arr[i]<=t&&a原创 2021-04-23 20:45:27 · 190 阅读 · 3 评论 -
最小生成树-Kruskal算法
数据结构:最小生成树-Kruskal算法Kruskal算法采用的是边贪心思想,我们先大概讲一下它的大概思想,首先我们先假设先隐藏所有的边,这样每个点会成为一个连通块。步骤1:先对图中所有的边按照权值进行排序步骤2:如果当前这条边的两个顶点不在一个连通块里面,那么咋就用并查集的Union函数把他们合并在一个连通块里面(也就是把他们放在最小生成树里面),如果再在一个并查集里面,我们就舍弃这条边,不需要这条边。步骤3:一直执行步骤2,知道当边数等于定点数的数目减去1,那就说明这n个顶点就连合并在一个集合原创 2021-03-29 20:46:03 · 20616 阅读 · 6 评论 -
二叉搜索树(BST)详解
二叉搜索树(BST)今天咱们来聊聊二叉搜索树,先从字面上来理解,二叉,指的是有两个分支,左子树和右子树;搜索树,啥意思呢,搜索,是不是就是之前学过dfs和bfs那边学过,对啊,dfs就是深度优先搜索,是不是用递归写的,是不是当时被搜索支配的很难受。。。。我也是的。。。那么BST有什么特殊地方呢,这个问题就是我们讨论的重点和难点。特殊:一颗大树而言,我们对于任何一个非叶子结点(如果不知道什么是叶子结点,叶子结点就是没有孩子结点),它的左子树的数值比根节点的数值小于或等于,右子树的数值比根节点的数值大,是原创 2021-03-25 15:04:34 · 3351 阅读 · 10 评论 -
并查集详解
数据结构-并查集并查集是维护集合的数据结构 它支持合并(Union) 查找(Find)功能首先需要一个father数组(int father[N])存放父亲结点father[i]表示元素i 的结点的父亲结点例如 father[1] = 2;表示结点1的父亲结点是2;在并查集初始化的时候father[i] = i;表示一开始自己的父亲是自己(核心)为什么这么初始化,下面你会慢慢了解//初始化const int N = 1001;int father[N];void init(){原创 2021-03-24 22:03:04 · 2233 阅读 · 14 评论