1.快速排序(QuickSort) 1.1 快速排序是对冒泡排序的一种改进。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按照此方法对这两部分数据进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 2.归并排序(MergeS ...
分类:
编程语言 时间:
2019-08-10 15:43:18
阅读次数:
113
无论是迷宫游戏、扫雷游戏,还是常用的搜索引擎,甚至高端AI人机博弈等都需要算法来更好的实现。 算法是软件方面提升计算机效率的利器。 算法与数据结构分不开,用代码实现算法,至少会涉及到一种数据结构,数据结构通常有: 线性结构树形结构图算法就要分别对应不同数据结构去排序。 当一个算法思想提出后,往往还需 ...
分类:
编程语言 时间:
2019-08-10 12:00:37
阅读次数:
94
集训1(HDU2018 Multi-University Training Contest 2)补题 E、G 较简单,赛后应马上补上。 C、F 属于常见知识点,也应尽快补上。 ...
分类:
编程语言 时间:
2019-08-06 23:58:39
阅读次数:
253
归并排序采取了分治的思想,每次分别排左半边和右半边,不断递归调用自己,直到只有一个元素递归结束,开始回溯,调用merge函数,合并两个有序序列,再合并的时候每次给末尾追上一个最大int这样就不怕最后一位的数字不会被排序。 ——————————————————————————————————————— ...
分类:
编程语言 时间:
2019-08-06 00:30:43
阅读次数:
96
树状数组 lowbit(i)=i & -i ci=i-lowbit(i)+1 ~ i c1 2 3 4 5 6 7 8... for(1~i) sum+=ci 区间加值:i+lowbit(i) 修改单点 区间修改 在两个端点各加一个标记 区间查询 求1~i 前缀和 sumi sumi 线段树 像归并 ...
分类:
编程语言 时间:
2019-08-05 18:57:41
阅读次数:
99
#include #include #include using namespace std; long long a[101000],b[101000]; int n; inline void Merge(int l,int mid,int r) { for(int i=l;imid) { a[i... ...
分类:
编程语言 时间:
2019-08-04 10:30:05
阅读次数:
98
学习内容:对顶堆 + 归并排序逆序数 + 树状数组逆序数 完成题数:5题 看书情况:15页 做题总结: AcWing 139:https://www.cnblogs.com/buhuiflydepig/p/11294118.html AcWing 106:https://www.cnblogs.co ...
分类:
其他好文 时间:
2019-08-03 23:44:15
阅读次数:
174
你一定玩过八数码游戏,它实际上是在一个3×3的网格中进行的,1个空格和1~8这8个数字恰好不重不漏地分布在这3×3的网格中。 例如: 5 2 8 1 3 _ 4 6 7 在游戏过程中,可以把空格与其上、下、左、右四个方向之一的数字交换(如果存在)。 例如在上例中,空格可与左、上、下面的数字交换,分别 ...
分类:
编程语言 时间:
2019-08-03 21:38:32
阅读次数:
188
在这个问题中,您必须分析特定的排序算法 超快速排序。 该算法通过交换两个相邻的序列元素来处理n个不同整数的序列,直到序列按升序排序。 对于输入序列9 1 0 5 4,超快速排序生成输出0 1 4 5 9。 您的任务是确定超快速排序需要执行多少交换操作才能对给定的输入序列进行排序。 输入格式 输入包括 ...
分类:
编程语言 时间:
2019-08-03 18:53:14
阅读次数:
93
#include #include using namespace std; int n; const int N=500003; int d[N],t[N]; long long sum; void CDQ(int l,int r) { if(l==r) return ; int t1=l,mid... ...
分类:
编程语言 时间:
2019-08-03 11:19:42
阅读次数:
103