排序
SYaoJun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
461. 无序数组K小元素
lintcode题目难度:中等类型:分治题意:求出数组第k小的数,可以使用优先队列,也可以使用快排。按照快排的思路,先寻找分割点,然后讲分割点两边的数据满足左边小于关键字,右边大于关键字,然后统计左边的数量left和k的相对大小,如果左边的数量比k大,说明第k小的数,一定在左边,所以直接求左边,反之在右边。时间复杂度:堆O(nlgn)O(nlgn)O(nlgn) 快排O(n)O(n)O(...原创 2020-04-12 22:28:35 · 415 阅读 · 0 评论 -
排序
题目公司:爱奇艺类型:数组排序题意:计算升序后,不在原位置的数的个数。#include <bits/stdc++.h>using namespace std;const int N = 55;int a[N], b[N];int main(){ int n; scanf("%d", &n); for(int i = 0; i < n; i++){ ...原创 2020-03-27 11:13:01 · 161 阅读 · 0 评论 -
1116 Come on! Let's C (20 分)
版本1注意: 不存在的数据,就算查询过的,但是不能输出checked,而要继续输出 are you kidding?注意整型要保证输出结果为4位数,前导零需要补上。#include <cstdio>#include <cmath>#include <iostream>#include <string>#include <vecto...原创 2019-12-03 19:15:58 · 219 阅读 · 0 评论 -
1141 PAT Ranking of Institutions (25 分)
知识点:排序题版本1耗时46分钟注意score必须是按照整型排序,而不是浮点数排序。不然最后一个测试点会出错。#include <cstdio>#include <cmath>#include <iostream>#include <string>#include <vector>#include <cstring...原创 2019-12-03 08:31:10 · 180 阅读 · 0 评论 -
1153 Decode Registration Card of PAT (25 分)
版本1这个题,怎么说呢?巨TM恶心不过分吧。排序尽量用结构体吧,vector靠不住。今天不是type==3的时候,我偏要用vector保存pair类型来排序,不然早就过了。还有就是字符转数字的时候没有减去字符0,导致直接算的ASCII码值。#include <cstdio>#include <cmath>#include <iostream>#in...原创 2019-12-02 23:16:08 · 208 阅读 · 0 评论 -
1035 插入与归并 (25 分)
主要考查对插入排序和对归并排序的掌握插入排序注意需要对A[i]设置一个中间变量保存,否则会被覆盖,反正我经常忘记。归并排序我经常对两个排好序的链表和数组归并,但是很少对整个数组从头归并。所以最好记个模板。void mergeSort(int A[]){ for(int step=2;step/2 < n;step=step*2){ for(int i=0;i<n;i+=s...原创 2019-01-23 18:47:07 · 488 阅读 · 0 评论 -
7-45 航空公司VIP客户查询 (25 分)
结构体排序题注意点:里程数需要累加,有可能某个会员不止一次乘坐飞机输入输出最好用scanf不然会超时#include <cstdio>#include <algorithm>#include <string>#include <iostream>#include <unordered_map>using namesp...原创 2019-11-16 11:37:31 · 783 阅读 · 0 评论 -
7-41 PAT排名汇总 (25 分)
这种排序题做过好多遍了主要是需要注意相同成绩的人具有相同名次但是输出的时候如果成绩相同需要将学号小的先输出#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <cstring...原创 2019-10-20 15:16:40 · 1006 阅读 · 0 评论 -
L2-015 互评成绩 (25 分)
大水题#include <iostream>#include <algorithm>#include <string>#include <deque>#include <cstring>#include <queue>#include <cstdio>using namespace std;int...原创 2019-09-07 16:43:00 · 460 阅读 · 0 评论 -
AcWing 786. 第k个数
AcWing题目链接快速选择排序,时间复杂度O(n)O(n)O(n)按照快排的思路,每次统计左右两边的数量,确定第k个数所在的区间,然后类似于二分的方式,缩小查找范围。#include <iostream>using namespace std;const int maxn = 1e5+5;int arr[maxn];int quickSort(int l, int r...原创 2019-08-31 08:16:03 · 164 阅读 · 0 评论 -
L2-012 关于堆的判断 (25 分)
边插入边建堆而不是都读入完成后再调整样例4的child是指直接孩子堆从1开始比较好调整#include <iostream>#include <vector>#include <algorithm>#include <string>#include <unordered_map>using namespace std;...原创 2019-09-06 21:19:42 · 330 阅读 · 0 评论 -
215. Kth Largest Element in an Array
使用快速选择排序根据快排的原理,每次取得pivot之后,计算两个各有多少个数。第k大的数就可以分配到两边来处理。当区间只有1个数时,就返回这个数。class Solution {public: int quicksort(vector<int>& nums,int k, int l, int r){ if(l >= r) return n...原创 2019-09-05 14:29:14 · 119 阅读 · 0 评论 -
75. 颜色分类
快排O(nlogn)O(nlogn)O(nlogn)class Solution {public: void sortColors(vector<int>& nums) { sort(nums.begin(), nums.end()); }};计数排序O(n)O(n)O(n)class Solution {public: ...原创 2019-09-05 13:33:42 · 167 阅读 · 0 评论 -
788. 逆序对的数量
逆序对1.左半边内部的逆序对数量2.右半边内部的逆序对数量3.中间的逆序对#include <iostream>#include <string>#include <algorithm>using namespace std;typedef long long LL;const int N =1e5+7;int arr[N], tmp[N];...原创 2019-09-05 11:40:00 · 321 阅读 · 0 评论 -
787. 归并排序
#include <iostream>#include <string>#include <algorithm>using namespace std;const int N =1e5+7;int arr[N], tmp[N];void mergesort(int l, int r){ if(l >= r) return; int mid...原创 2019-09-05 11:15:34 · 148 阅读 · 0 评论 -
1060 爱丁顿数 (25 分)
查看原题目请点我 解题思路:我记得我当时上机考这道题的时候特别幸运,因为我根本就没怎么读懂题就拿了24分,只有最后一个测试点那一分没拿到。#include<cstdio>#include<algorithm>using namespace std;const int maxn=100005;int arr[maxn]={0};bool cmp(int a...原创 2018-03-15 12:03:17 · 257 阅读 · 0 评论 -
1116 Come on! Let's C (20 分)
注意:\color{red}注意:注意:1.如果某个ID不存在,即使之前查过,但是不能输出checked,而要输出Are you kidding?2.输出字符串的时候别忘了后面的标点符号本题通过哈希查找,对于不同的状态赋予不同的值,如果是正常的数据,那么必然存在大于零的值,如果等于零,表示该ID不存在,如果该ID为-1,表示之前查找过了,注意在输出的时候要标记该ID的状态。#include...原创 2019-08-31 22:12:58 · 146 阅读 · 0 评论 -
1082 射击比赛 (20 分)
注意:\color{red} 注意:注意:1.距离越近越厉害2.题目没有说坐标一定是整型,有可能是浮点型,所以需要全部存为浮点型。#include <string>#include <cstdio>#include <cmath>#include <iostream>#include <algorithm> using ...原创 2019-08-31 11:00:16 · 193 阅读 · 0 评论 -
AcWing 785. 快速排序
题目链接快速排序三个步骤1.选分界点2.确定左右两段3.递归处理左右两段#include <iostream>using namespace std;const int maxn = 1e5+5;int arr[maxn];void quickSort(int l, int r){ if(l >= r) return; int x = arr[l+r>...原创 2019-08-31 08:20:18 · 149 阅读 · 0 评论 -
最大差值
题目链接时间复杂度O(n)O(n)O(n)利用n个数放在n+1个桶中,必然有一个空桶,这也就否定了最大差值在桶内部。然后记录每个桶中的最大值和最小值,最大差值在两个临近桶之间。推荐看左神视频初级班第三讲100分钟左右考查内容桶排序#include<bits/stdc++.h>using namespace std;const int INF = 0x3fffffff...原创 2019-08-29 17:08:09 · 264 阅读 · 0 评论 -
L2-027 名人堂与代金券 (25 分)
大水题只要用一个变量记录前一个数的排名就好了然后统计代金券是统计的全体的发放值,不是在前k名中统计#include <iostream>#include <algorithm>#include <string>#include <deque>#include <cstring>#include <queue>...原创 2019-09-07 20:45:20 · 548 阅读 · 0 评论 -
成绩排序【清华大学】
牛客网题目链接题解1.有多组输入2.如果读入的是0则降序,是1则升序3.当成绩相同时,需要按照录入在前的先排序#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <que...原创 2019-10-01 21:26:12 · 170 阅读 · 0 评论 -
成绩排序【清华大学】
题目链接版本1外置重载比较器类import java.util.*;public class perfomanceSort { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()) { int n = in.nextInt(); ...原创 2019-08-29 17:09:34 · 242 阅读 · 0 评论 -
小白鼠排队【北京大学】
牛客网题目链接简单的排序题常用的方法是用结构体但是这道题只有两个变量可以用pair#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>#include...原创 2019-10-02 09:41:15 · 278 阅读 · 0 评论 -
最小年龄的3个职工【华中科技大学】
牛客网题目链接使用结构体排序#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>#include <cstdio>#include <...原创 2019-10-02 14:24:31 · 208 阅读 · 0 评论 -
查找学生信息【清华大学】
题目描述 输入N个学生的信息,然后进行查询。 输入描述: 输入的第一行为N,即学生的个数(N接下来的N行包括N个学生的信息,信息格式如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 然后输入一个M(M02 03 01 04 输出描述: 输出M行,每行包括一个对应于查询的学生的信息。 如果没有对应的学生信息,则输出“No原创 2018-01-11 23:40:16 · 1177 阅读 · 0 评论 -
排序【华中科技大学】
最简单的排序题没有之一#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>#include <cstdio>#include <cct...原创 2019-10-02 22:02:34 · 184 阅读 · 0 评论 -
整理图书【牛客网】【排序】
题目链接#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>#include <cstdio>#include <cctype>...原创 2019-10-05 08:18:48 · 211 阅读 · 0 评论 -
7-40 奥运排行榜 (25 分)【中等排序题】
排序题意输出四种排序方式中,排名最好的名次和排序方式。可以先用向量对四种排序方式分别排序,然后把排序的名次放入结构体中,再从这些名次中挑选最小的名次进行输出。注意,有相同成果的排名需要相同,而不是简单的加1#include <iostream>#include <vector>#include <string>#include <cmath...原创 2019-10-05 09:35:31 · 1077 阅读 · 0 评论 -
奥运排序问题【浙江大学】★
牛客网题目链接注意1.相同金牌数,相同名次,其他类似。2.存在人数或者奖牌为0的情况。#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <queue>#inclu...原创 2019-10-05 12:11:04 · 464 阅读 · 0 评论 -
开门人与关门人【浙江大学】【排序】
牛客网题目链接思路输出最早开门的人和最后一个离开的人。用结构体存,然后两种排序方式,分别输出排在最前面的人。#include<bits/stdc++.h>using namespace std;struct stu{ string name,in,out;}E[10005];bool cmp(stu a, stu b){ return a.in < b.in;...原创 2019-10-05 13:38:38 · 233 阅读 · 0 评论 -
1055 集体照 (25 分)
代码有点冗余有兴趣的同学可以自行修改一下。把输出的内容放在主函数外面写成一个打印函数需要认真读题和找规律我也是瞎搞提交通过了就想弄了,等以后刷第二遍的时候再来优化代码吧#include<bits/stdc++.h>using namespace std;struct stu{ char name[10]; int high;};bool cmp(stu a,st...原创 2019-01-28 13:56:57 · 308 阅读 · 0 评论 -
1062 Talent and Virtue (25 分)
https://www.patest.cn/contests/pat-a-practise/1062 解题思路:我之前也写过一段德才论的代码,但是还是太复杂了。这道题的关键是分类,分成五类,然后按照类型再排次序就简单了。第一类:德才都过优秀线 第二类:德过优秀线,才没过优秀线但是过了及格线 第三类:德才都过及格线,但是都不过优秀线,但是德分高于才分 第四类:德才过线,且不满足上面的特点原创 2018-02-02 01:52:57 · 262 阅读 · 0 评论 -
1012. The Best Rank (25)
题目链接:https://www.patest.cn/contests/pat-a-practise/1012解题思路:按照平均成绩,C语言成绩,数学成绩,外语成绩依次排序,然后记录排名最好的成绩,利用一个map查询当前这个人是否在输入的数据中。很繁琐,我恨透了这样的题,但是请把它做出来了再骂! 女子为好,先骂为敬。我透!#include #include #include #in原创 2018-02-02 15:51:26 · 257 阅读 · 0 评论 -
1025. PAT Ranking (25)
题目链接:https://www.patest.cn/contests/pat-a-practise/1025 吐槽:我用数组做了一个版本,有两个测试点过不去,现在又用vector做了一个几乎一模一样的就给过了,有毒!#include #include #include #include using namespace std;struct Node{ long long原创 2018-02-02 18:53:44 · 320 阅读 · 0 评论 -
1028. List Sorting (25)
题目链接:https://www.patest.cn/contests/pat-a-practise/1028题目解析:PAT甲级再也没有比它更简单排序题了,解析略。#include #include #include using namespace std;const int N = 100005;struct Node{ int id; char name[原创 2018-02-02 19:14:35 · 279 阅读 · 0 评论 -
1083. List Grades (25)
https://www.patest.cn/contests/pat-a-practise/1083 排序#include#include#includeusing namespace std;struct E{ char name[15]; char id[15]; int grade; bool operator const E&b)cons原创 2018-01-28 04:27:42 · 260 阅读 · 0 评论 -
1028 人口普查 (20 分)
查看原题目请点我这里解题思路 首先把合理的人员加入结构体中,在加入的时候顺便统计一下有多少个人,然后对结构体中合格的人员按照出生日期进行排序,得到最年长的在第一位,最年轻的在最后一位,直接输出就行了。是否是合理的人员通过check函数判断。 注意 当没有合格的人员时,直接输出0就行了。#include<cstdio>#include<algorithm>#...原创 2018-03-15 19:33:54 · 273 阅读 · 0 评论 -
1059 C语言竞赛 (20 分)
查看原题目请点我这里 解题思路 显然这是一道排序题,但是有几个比较烦的地方,其一需要判断素数,由于这里给的数字不是很大,可以用单个判别,不用打素数表,当然打表以后速度更快;其二,对于查过的编号需要输出checked,但是不存在的ID仍然需要输出Are you kidding?所以再散列一遍参赛选手的ID。 注意 参赛选手编号是四位数,所以需要用0填充,这一点在样例中有体现,相信大家都不会出...原创 2018-03-15 20:08:08 · 304 阅读 · 1 评论 -
1080 MOOC期终成绩 (25 分)
查看原题目请点击我 解题思路:这道题有点类似数据库的合并一样,把名字相同的不同表合为一张表。我考虑的还是使用结构体,但是如果用strcmp来比较这个名字是否出现过,将会非常慢,我开始是这样做的,但是最后一个测试点不通过,超时了,后来用了一下map的映射,然后稍微加快了点,顺利通过了。#include<cstdio>#include<iostream>#incl...原创 2018-03-13 10:30:43 · 432 阅读 · 1 评论
分享