![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
信奥一本通(排序)
文章平均质量分 68
信奥一本通(排序)
橙子教师
这个作者很懒,什么都没留下…
展开
-
常见排序算法效率比较
原创 2021-07-03 10:58:45 · 462 阅读 · 0 评论 -
信息学奥赛一本通(1235:输出前k大的数)——堆排序
1235:输出前k大的数时间限制: 1000 ms 内存限制: 65536 KB提交数: 12715 通过数: 4043【题目描述】给定一个数组,统计前k大的数并且把这k个数从大到小输出。【输入】第一行包含一个整数n,表示数组的大小。n < 100000。第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。第三行包含一个整数k,k < n。【输出】从大到小输出前k大的数,每...原创 2021-07-02 21:49:04 · 725 阅读 · 0 评论 -
图解排序算法(三)之堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子该数组从逻辑上讲就是一个堆结构,我们用简单的公式来描述一下堆的转载 2021-07-02 11:43:50 · 179 阅读 · 0 评论 -
信息学奥赛一本通(1187:统计字符数)
1187:统计字符数时间限制: 1000 ms 内存限制: 65536 KB提交数: 11588 通过数: 6641【题目描述】给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。【输入】输入包含一行,一个字符串,长度不超过1000。【输出】输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符。【输入样例】abbccc...原创 2021-06-06 23:49:58 · 1211 阅读 · 2 评论 -
信息学奥赛一本通(1186:出现次数超过一半的数)
1186:出现次数超过一半的数时间限制: 1000 ms 内存限制: 65536 KB提交数: 15584 通过数: 7167【题目描述】给出一个含有n(0 < n <= 1000)个整数的数组,请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。【输入】第一行包含一个整数n,表示数组大小;第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。【输出】如果存在这样的数,输出这个数;否则输出no......原创 2021-06-06 23:47:25 · 1022 阅读 · 0 评论 -
信息学奥赛一本通(1185:单词排序)
1185:单词排序时间限制: 1000 ms 内存限制: 65536 KB提交数: 11964 通过数: 6009【题目描述】输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)【输入】一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。【输出】按字典序输出这些单词,重复的单词只输出一次。【输...原创 2021-06-06 23:44:35 · 990 阅读 · 0 评论 -
信息学奥赛一本通(1184:明明的随机数)——桶排序
1184:明明的随机数时间限制: 1000 ms 内存限制: 65536 KB提交数: 17426 通过数: 10851【题目描述】明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。【输入】有2行,...原创 2021-06-06 22:17:27 · 732 阅读 · 0 评论 -
信息学奥赛一本通(1183:病人排队)
1183:病人排队时间限制: 1000 ms 内存限制: 65536 KB提交数: 17345 通过数: 7284【题目描述】病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:1.老年人(年龄 >= 60岁)比非老年人优先看病。2.老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。3.非老年人按登记的先后顺序看病。【输入】第1行,输入一个小于100的正整数,表示病人的个数;后面按照病人登记的先后顺...原创 2021-06-06 21:22:16 · 1107 阅读 · 0 评论 -
信息学奥赛一本通(1182:合影效果)——归并排序
1182:合影效果时间限制: 1000 ms 内存限制: 65536 KB提交数: 12645 通过数: 7214【题目描述】小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?【输入】第一行是人数n(2 <= n <= 40,且至少有1个男生和1个女生)。后...原创 2021-06-06 17:45:18 · 980 阅读 · 0 评论 -
信息学奥赛一本通(1181:整数奇偶排序)——快速排序
1181:整数奇偶排序时间限制: 1000 ms 内存限制: 65536 KB提交数: 13733 通过数: 8879【题目描述】给定10个整数的序列,要求对其重新排序。排序要求:1.奇数在前,偶数在后;2.奇数按从大到小排序;3.偶数按从小到大排序。【输入】输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于30000。【输出】按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开...原创 2021-06-06 01:04:07 · 1469 阅读 · 1 评论 -
信息奥赛一本通(1180:分数线划定)——插入排序
1180:分数线划定时间限制: 1000 ms 内存限制: 65536 KB提交数: 15750 通过数: 7408【题目描述】世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%150%划定,即如果计划录取mm名志愿者,则面试分数线为排名第m×150%m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线...原创 2021-06-06 01:15:36 · 570 阅读 · 2 评论 -
信息学奥赛一本通(1179:奖学金)——冒泡排序
1179:奖学金时间限制: 1000 ms 内存限制: 65536 KB提交数: 21096 通过数: 10137【题目描述】某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前55名学生发奖学金。期末,每个学生都有33门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的33门课的成绩计算总...原创 2021-06-05 13:54:29 · 750 阅读 · 0 评论 -
信息学奥赛一本通(1178:成绩排序)——选择排序
1178:成绩排序时间限制: 1000 ms 内存限制: 65536 KB提交数: 29458 通过数: 11916【题目描述】给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。【输入】第一行为n (0 < n < 20),表示班里的学生数目;接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数。【输出】...原创 2021-06-05 11:20:31 · 1632 阅读 · 0 评论 -
信息学奥赛一本通(1177:奇数单增序列)——比较排序
1177:奇数单增序列时间限制: 1000 ms 内存限制: 65536 KB提交数: 23242 通过数: 11610【题目描述】给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。【输入】第1行为 N;第2行为 N 个正整数,其间用空格间隔。【输出】增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。【输入样例】101 3 2 6 5 4 9 8 7 10【输出样例】...原创 2021-06-05 10:09:27 · 535 阅读 · 0 评论 -
信息学奥赛一本通(1176:谁考了第k名)——qsort 函数
1176:谁考了第k名时间限制: 1000 ms 内存限制: 65536 KB提交数: 32951 通过数: 14262【题目描述】在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。【输入】第一行有两个整数,分别是学生的人数n(1≤n≤100)n(1≤n≤100),和求第k名学生的k(1≤k≤n)k(1≤k≤n)。其后有nn行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。【...原创 2021-06-05 09:49:20 · 498 阅读 · 0 评论 -
信息奥赛一本通(1311:【例2.5】求逆序对)
1311:【例2.5】求逆序对时间限制: 1000 ms 内存限制: 65536 KB提交数: 26125 通过数: 5883【题目描述】给定一个序列a1,a2,…,ana1,a2,…,an,如果存在i<ji<j并且ai>ajai>aj,那么我们称之为逆序对,求逆序对的数目。【输入】第一行为nn,表示序列长度,接下来的nn行,第i+1i+1行表示序列中的第ii个数。【输出】所有逆序对总数。【输入样例】43...原创 2021-06-05 09:15:05 · 1100 阅读 · 0 评论 -
信息奥赛一本通(1310:【例2.2】车厢重组)
1310:【例2.2】车厢重组时间限制: 1000 ms 内存限制: 65536 KB提交数: 18621 通过数: 11419【题目描述】在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初...原创 2021-06-05 08:57:38 · 343 阅读 · 2 评论 -
排序算法模板
1快速排序算法模板 —— 模板题 AcWing 785. 快速排序void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { do i ++ ; while (q[i] < x); do j -- ; while (q[j] ...转载 2021-06-05 07:58:48 · 94 阅读 · 0 评论 -
C 排序算法
C 排序算法冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。过程演示:实例#include <stdio.h> void bubble_sort(int arr[], int len) { int i, j, temp; for (i = 0; i < len - 1; i++) for (j = 0; j < len - 1转载 2021-06-05 07:55:05 · 256 阅读 · 0 评论 -
qsort函数应用大全
qsort函数应用大全(转)转载 2021-06-05 07:39:53 · 88 阅读 · 0 评论