
分治法
两种排序
Charming Boy
苟有恒,何必三更眠五更起;
最无益,莫过一日曝十日寒。
展开
-
明明随机数,快排,去重
题目链接:https://www.luogu.com.cn/problem/P1059这个题算是快速排序的一个练习吧(不用STL sort()的情况下),可以熟悉快速排序的模板#include<iostream>#include<cstdio>using namespace std;const int N = 1e6+10;int n,sum;int q[N...原创 2020-02-03 20:16:26 · 336 阅读 · 0 评论 -
归并排序及模板
文章目录归并排序理解归并排序模板归并排序理解归并排序的主要操作如下:(1)分解。把初始序列分成长度相同的左、右两个子序列,然后把每个子序列再分成更小的两个子序列,直到子序列只包含一个数。这个过程用递归实现。(2)求解子问题,对子序列排序。最底层的子序列只包含一个数,其实不用排序。(3)合并。归并两个有序的子序列,这是归并排序的主要操作。比如下面举例,把a[ ]分成两个子序列,比较后存进b...原创 2020-02-01 18:42:10 · 1995 阅读 · 0 评论 -
快速排序及模板
快速排序的思路是:把序列分成左、右两部分,使得左边所有的数比右边所有的数小;递归这个过程,直到不能再分为止。直接在原序列上进行划分:尾部t是基准数,i指向比t小的左部分,j指向比t大的右部分若data[j]大于等于data[t],j++;3. 若data[j]<data[t],交换,然后i++,j++;4. 重复上述步骤5. 最后交换data[i]和data[t]...原创 2020-01-18 17:40:40 · 453 阅读 · 0 评论