分治法
两种排序
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 · 303 阅读 · 0 评论 -
归并排序及模板
文章目录归并排序理解归并排序模板 归并排序理解 归并排序的主要操作如下: (1)分解。把初始序列分成长度相同的左、右两个子序列,然后把每个子序列再分成更小的两个子序列,直到子序列只包含一个数。这个过程用递归实现。 (2)求解子问题,对子序列排序。最底层的子序列只包含一个数,其实不用排序。 (3)合并。归并两个有序的子序列,这是归并排序的主要操作。比如下面举例,把a[ ]分成两个子序列,比较后存进b...原创 2020-02-01 18:42:10 · 1929 阅读 · 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 · 416 阅读 · 0 评论