输入n个整数,输出其中最小的k个
2024-10-14 14:21:54
描述 |
输入n个整数,输出其中最小的k个。 详细描述: 接口说明 原型: bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray); 输入参数: unsignedint uiInputNum //输入整数个数 int * pInputArray //输入整数数组 unsignedint uiK //需输出uiK个整数 输出参数(指针指向的内存区域保证有效): int * pOutputArray //最小的uiK个整数 返回值: false 异常失败 true 输出成功 |
---|---|
知识点 | 循环,数组 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 |
输入说明 |
输出 |
输出一个整数数组 |
样例输入 | 5 2 1 3 5 7 2 |
样例输出 | 1 2 |
package com.oj; import java.util.Scanner;
public class Test {
public static void sinkDown(int[] data,int k,int length){
while(2*k<=length){
int maxpos = 2*k;
if(data[maxpos]>data[maxpos+1])
maxpos += 1;
if(data[k]>data[maxpos]){
int temp = data[maxpos];
data[maxpos] = data[k];
data[k] = temp;
k = maxpos;
}else
break;
}
} public static void deleteMin(int[] data,int length){
System.out.print(data[1]);
data[1] = data[length];
length--;
sinkDown(data,1,length);
} public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] numstr = in.nextLine().split(" ");
int num = Integer.parseInt(numstr[0]);
int n = Integer.parseInt(numstr[1]);
String[] datastr = in.nextLine().split(" ");
int[] data = new int[datastr.length+1];
//System.out.println("hello ");
for(int i = 1;i <= num; i++)
data[i] = Integer.parseInt(datastr[i-1]); for(int i = num/2;i >= 1; i--)
sinkDown(data,i,data.length);
for(int i = 1;i <= n; i++){
deleteMin(data,data.length-i);
if(i!=n)
System.out.print(" ");
else
System.out.println();
}
System.out.println();
// for(int i = 1; i <= (num-n) ; i++)
// System.out.print(data[i]+" ");
}
}
最新文章
- NOIP提高模拟题 完全平方数
- 【转】ACM博弈知识汇总
- redis删除list中指定index的值
- BZOJ 3809 莫队+(分块|BIT)
- CDN(内容分发网络)技术原理
- 【iOS问题】The file “XXX.app” couldn’t be opened because you don’t have permission to view it.
- ecshop退款订单原理分析
- RTL2832U+R820电视棒跟踪飞机轨迹教程(ADS-B)
- set与hash_set
- orcale 修改字段属性
- 无法加载协定为“ServiceReference1.ReportWsSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
- golang 学习笔记
- 鼠标滚动事件 - onmousewheel
- 转:iOS开发之多种Cell高度自适应实现方案的UI流畅度分析
- Java虚拟机16:Metaspace
- 小程序后端项目【Springboot框架】部署到阿里云服务器【支持https访问】
- 关于Python深浅拷贝
- 分布式队列神器 Celery
- ubuntu下安裝sogou拼音
- .net 报错汇总——持续更新
热门文章
- JQuery 定时器 (Jquery Timer 插件)
- Redis的几个认识误区
- 分享Kali Linux 2016.2第43周镜像
- 个人js类库mycool
- Android 自动化测试—robotium(七) 使用Junit_report测试报告
- js中for in 和 for each in的用法和区别
- EF框架step by step(6)—处理实体complex属性
- Drawing Arc Using ArcSegment in XAML
- IP地址分类整理
- 【BZOJ】1086: [SCOI2005]王室联邦