![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
曼切斯特的流氓
007
展开
-
重新排序(排序不等式+差分)蓝桥
根据排序不等式,我们开一个cnt数组记录每个位置需要查询的次数,这个过程使用差分数组降低复杂度,然后利用sort排序求出两次结果的差。由于题目涉及区间范围同时加上一个数,所以利用差分数组可以将复杂度降为O(n)简单来说就是大的乘以大的,小的乘以小的,按顺序就可以排除最大的和。原创 2023-04-06 10:47:28 · 89 阅读 · 0 评论 -
排序大全C++
快速排序#include<bits/stdc++.h>using namespace std;const int maxn = 2e6+10;int a[maxn];int n,m;int Partition(int left,int right){ int p=a[left]; int j=left; for(int i=left+1;i<=right;i++) { if(a[i]<p) {原创 2021-07-27 15:45:48 · 78 阅读 · 0 评论 -
数串问题--逆序对求解
题目描述Description给定一个数串,数串的长度为 n ,现在将一个子串的每个数字之和定义为该子串的数串和,请你求出数串中有多少个子串的数串和为正数。Input第一行一个数 n ,表示数串的长度。第二行一共 n 个数,表示数串中的每个数输出就一个数,表示数串中有多少个子串的数串和为正数。Output一个正数即答案。Sample Input 138 -9 2Sample Output 13Hint对于100%的数据: n ≤ 100000,所有数之和在int范原创 2021-04-18 21:50:12 · 375 阅读 · 3 评论 -
逆序对--归并排序
归并排序归并排序复杂度为O(nlogn)可以解决数量较大的逆序对问题,归并排序利用分治思想,每次二分数组,一直分到单个元素为一组,最后从底至上进行合并,排序!复杂度为什么是O(nlogn)?首先有n个元素,每次二分为两个数组,则一共可以分出log2^n层,每层都要对n个元素排序一共log2 ^n层,所以复杂度为n*log2n!如何自底向上归并、排序?图解这是自顶向下的二分!第一次排序后结果第二次排序第3次排序逆序对在一个序列中,ai号元素>aj号元素原创 2021-04-18 19:43:57 · 469 阅读 · 0 评论 -
整数奇偶排序(信息学奥赛一本通-T1181)
【题目描述】给定10个整数的序列,要求对其重新排序。排序要求:奇数在前,偶数在后;奇数按从大到小排序;偶数按从小到大排序。【输入】输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。【输出】按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。【输入样例】4 7 3 13 11 12 0 47 34 98【输出样例】47 13 11 7 3 0 4 12 34 98解题思路这道题数据只有10个,我们可以用复杂.原创 2021-04-12 21:44:04 · 977 阅读 · 0 评论