给你n个整数,请按从大到小的顺序输出其中前m大的数。 

Input

每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。

Output

对每组测试数据按从大到小的顺序输出前m大的数。

Sample Input

5 3
3 -35 92 213 -644

Sample Output

213 92 3 

Hint

请用VC/VC++提交

// 不能用选择排序Time Limit Exceeded,最后用了希尔排序
 #include<stdio.h>
int n, m, a[]; void Sort(int a[], int len)
{
int i, j, k, gap, temp;
for(gap=len/; gap>; gap/=)
{
for(i=gap; i<len; i++)
{
temp=a[i];
for(j=i-gap; j>=&&temp>a[j]; j-=gap)
{
a[j+gap]=a[j];
}
a[j+gap]=temp;
}
}
} int main()
{
int i;
while(scanf("%d %d", &n, &m)!=EOF)
{
for(i=;i<n;i++)
scanf("%d", &a[i]);
Sort(a, n);
for(i=;i<m;i++)
{
if(i==m-) printf("%d\n", a[i]);
else printf("%d ", a[i]);
}
}
return ;
}

AC

// 关于希尔排序的理解参考:
https://blog.csdn.net/weixin_37818081/article/details/79202115
https://www.cnblogs.com/daohuoren/p/6614766.html// 附上代码
 // 默认从小到大排序
void selc_sort(int a[], int len);
void shell_sort(int a[], int len); void selc_sort(int a[], int len)
{
int i, j, t, min;
for(i=;i<len-;i++)
{
min=i;
for(j=i+;j<len;j++)
if(a[min]>a[j]) min=j;
if(min!=i)
{ t=a[i]; a[i]=a[min]; a[min]=t; }
}
} void shell_sort(int a[], int len)
{
int i, j, gap, t;
for(gap=len/; gap>; gap/=)
for(i=gap; i<len; i++)
for(j=i;j-gap>=&&a[j]<a[j-gap];j-=gap)
{ t=a[j-gap]; a[j-gap]=a[j]; a[j]=t; }
}

sort.h

2Y - sort的更多相关文章

  1. stl sort和qsort的使用

    好不容易使用了下stl的qsort函数,顺便和sort函数一起总结下: 很多时候我们都需要用到排序. 例如: 1 #include <iostream> #include <algo ...

  2. SED总结, mac上要加备份文件名,sort命令和对中文的处理

    使用sed批量改文件名 Sed批量去拓展名 |- dev.gb.conll06.raw |- test.gb.conll06.raw |- train.gb.conll06.raw 想要去掉其中的后缀 ...

  3. 文本处理命令(sort+uniq+cut+tr+wc)+三剑客之sed

    目录 文本处理命令+三剑客之sed 一.文本处理命令 1.排序命令 sort 2.检查/删除命令 uniq 3. cut 显示特定部分命令 4. 替换或删除命令 tr 5.统计 计算数字命令 wc 二 ...

  4. 11、Linux基础--sort、uniq、cut、tr、wc、流处理工具sed

    笔记 1.晨考 1.写出过滤手机号的正则表达式 1[0-9]{10} 2.写出过滤邮箱的正则表达式 chenyang@123.com [a-zA-Z0-9-_]+@[a-z0-9]+\.(com|cn ...

  5. [算法]——归并排序(Merge Sort)

    归并排序(Merge Sort)与快速排序思想类似:将待排序数据分成两部分,继续将两个子部分进行递归的归并排序:然后将已经有序的两个子部分进行合并,最终完成排序.其时间复杂度与快速排序均为O(nlog ...

  6. [算法]——快速排序(Quick Sort)

    顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...

  7. shell之sort命令

    1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [rocrocket@rocrocket progr ...

  8. 详细解说 STL 排序(Sort)

    0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...

  9. SQL Tuning 基础概述06 - 表的关联方式:Nested Loops Join,Merge Sort Join & Hash Join

    nested loops join(嵌套循环)   驱动表返回几条结果集,被驱动表访问多少次,有驱动顺序,无须排序,无任何限制. 驱动表限制条件有索引,被驱动表连接条件有索引. hints:use_n ...

随机推荐

  1. Swift自定义UINavigationController(背景颜色、背景图片、返回按钮设置、字体大小等)

    1.0  自定义UINavigationController时,背景图片.颜色等只需要设置一次,所以我们可以重写  initializa  这个方法来实现我们想要的效果 override  class ...

  2. 微信小程序----搜索框input回车搜索事件

    在微信小程序里的搜索框,按软键盘回车键触发搜索事件. <input type="text"  placeholder="搜索" value="{ ...

  3. Fixation index

    :或者1.简单介绍 固定指数(FST)是一种由遗传结构决定的种群分化指标.它通常是由遗传多态性数据,如单核苷酸多态性(SNP)或微卫星估计.作为莱特f统计的一个特例,它是种群遗传学中最常用的统计方法之 ...

  4. 解决不联网无法启动struts2问题

    Unable to load configuration. - Class: java.net.PlainSocketImplFile: PlainSocketImpl.javaMethod: con ...

  5. pta7-20 畅通工程之局部最小花费问题(Kruskal算法)

    题目链接:https://pintia.cn/problem-sets/15/problems/897 题意:给出n个城镇,然后给出n×(n-1)/2条边,即每两个城镇之间的边,包含起始点,终点,修建 ...

  6. 最小生成树 prime算法 UVALive - 6437

    题目链接:https://vjudge.net/contest/241341#problem/D 这里有多个发电站,需要求出所有点都和发电站直接或间接相连的最小代价,那么就是求出最小生成树的问题了,有 ...

  7. Zabbix 3.0编译安装

    环境准备Centos 6.X 数据库准备默认centos yum源中mysql包的版本号为5.1,为了能使zabbix 3.0能达到最好的性能效果,安装最新版的mysql数据库. yum list i ...

  8. Python开发【第二篇】:Python基本数据类型

    运算符 设定:a=10,b=20 . 算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 1.数字 int(整型)     在32位机器上,整数的位数为32位,取值范围为- ...

  9. 微信小程序开发——以简单易懂的浏览器页面栈理解小程序的页面路由

    前言: 对于小程序的页面路由,如果没有一定开发经验的话,理解起来还是会有些困难的.哪怕是有一定小程序开发经验的开发者,能够完全理解掌握的恐怕也不多. 这里就以另外一种方式来详细的介绍小程序的页面栈及路 ...

  10. mysql之 安装(Mac)

    1.官网下载安装包:https://dev.mysql.com/downloads/mysql/ 2.设置环境变量:(1)首先mysql的安装位置为:/usr/local/mysql/bin (2)在 ...