![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
小猪快点跑
这个作者很懒,什么都没留下…
展开
-
排序算法:交换、选择、归并、基数(桶)、计数、插入
一、排序类别 1、交换排序 (1)冒泡排序 (2)快速排序 2、选择排序 (1)简单选择排序 (2)堆排序 3、归并排序 (1)二路归并 (2)多路归并 4、基数排序(分配、收集多次交替) (1)最低位优先、最高位优先(在纯数值排序时一般不用) (2)单关键字排序、多关键字排序(如排若干张扑克牌,有花色、面值两种关键字,需要两种桶,13个面值桶,4个花色桶) 5、计数排序...原创 2019-07-10 17:05:34 · 199 阅读 · 0 评论 -
并查集 Union-Find Set
在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作: Find:确定元素属于哪一个子集。这个确定方法就是不断向上查找找到它的根节点,它可以被用来确定两个元素是否属于同一子集。 Union:将两个子集合并成同一个集合 https://www....原创 2019-07-31 13:27:58 · 223 阅读 · 0 评论 -
链表问题:反转链表、反转m和n之间的链表、K个一组翻转链表
1、反转链表 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; ...原创 2019-08-29 16:25:30 · 571 阅读 · 0 评论 -
top-k / top-kth
1、减治-快排 二分,平均每次只快排一半,n + n/2 + n/4 + ... ~=2n #include <iostream> #include <vector> #include <algorithm> #include <numeric> #include <climits> using namespace...原创 2019-09-02 13:23:55 · 178 阅读 · 0 评论 -
单调队列
1、单调队列 类似单调栈,只是单调栈的大小是不固定的,而单调队列的大小是有限制的,当队列大小超过限制时,就让队头出队。 2、常见问题 (1)滑动窗口最大值,递减队列,队头即为最大值,当队列大小超过限制时,出队头 (2)滑动窗口最小值,递增队列,队头即为最小值,当队列大小超过限制时,出队头 ...原创 2019-09-19 22:16:23 · 84 阅读 · 0 评论 -
数据结构:二叉树的序列化、反序列化
一、四种遍历 前序遍历、中序遍历、后序遍历、层序遍历 #include <iostream> #include <vector> #include <queue> #include <string> using namespace std; class Node{ public: int val; Node *left; ...原创 2019-10-11 17:53:58 · 184 阅读 · 0 评论