快速排序
yqcr
这个作者很懒,什么都没留下…
展开
-
堆排序
先说说堆: 首先堆是一种完全二叉树,根据特点不同分为大根堆和小根堆。 大根堆呢就是树上任意非叶子节点的值都大于其左右端点(左右端点之间不在意大小),对应的小根堆就是树上任意非叶子节点值都小于其左右端点。 图示: 堆排序呢就是根据不同堆的特性将其整理为一个最大(小)堆后,移除根节点,并作调整的递归运算。 本代码只是将乱序整理为最小堆的代码,并未真正排序(相当于进行了一次堆排序) 附代码: #include <iostream> #include <cstdio> #include &原创 2020-05-11 17:56:37 · 89 阅读 · 0 评论 -
插入排序,希尔排序
今天刚讲的,因为学校oj某些不详的原因不能登录所以没去验证正确性先把代码贴上。 直接插入排序: #include <iostream>//直接插入算法(稳定排序)O(n^2) #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #inclu...原创 2020-05-06 21:58:15 · 88 阅读 · 0 评论 -
快速排序模板
洛谷的一道题,t的我头皮发麻 普通快排虽然效率一般情况下比冒泡高,但极端情况下(比如序列非常接近有序)一直以左端点为基点还是非常耗时, 所以在普通快排基点选取的问题上出现了一种随机快排, 附代码: #include <iostream> #include <bits/stdc++.h> using namespace std; #define ll long long in...原创 2020-03-11 13:18:30 · 159 阅读 · 0 评论