题目
===========================================
输入n个整数,输出其中最小的k个。
详细描述:
接口说明
原型:
bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);
输入参数:
unsignedint uiInputNum //输入整数个数
int * pInputArray //输入整数数组
unsignedint uiK //需输出uiK个整数
输出参数(指针指向的内存区域保证有效):
int * pOutputArray //最小的uiK个整数
返回值:
false 异常失败
true 输出成功
一次通过
100分
===========================================
import java.util.Scanner;
//输入n个整数,输出其中最小的k个。
//详细描述:
//接口说明
//原型:
//bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);
//输入参数:
// unsignedint uiInputNum //输入整数个数
//int * pInputArray //输入整数数组
//unsignedint uiK //需输出uiK个整数
//输出参数(指针指向的内存区域保证有效):
// int * pOutputArray //最小的uiK个整数
//返回值:
// false 异常失败
// true 输出成功
public class oj006 {
public void getMinK(int[] number,int k)
{
for(int j=0;j<k;j++) //取出k次最小值
{
int min=Integer.MAX_VALUE;
int minIndex=-1;
for(int i=0;i<number.length;i++) //找出最小数
{
if(number[i]<min){min=number[i];minIndex=i;}
}
if(minIndex!=-1) //存在就输出
{
if(j==k-1){System.out.print(min+"\n");} //输出格式
else {System.out.print(min+" ");}
}
number[minIndex]=Integer.MAX_VALUE; //将此轮最小数删除 便于下次找
}
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int k=scanner.nextInt();
int[] number=new int[n];
for(int i=0;i<n;i++)
{
number[i]=scanner.nextInt();
}
new oj006().getMinK(number, k);
}
}