import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// while (in.hasNext()) {
String str = in.nextLine();
String[] strs = str.split(" ");
int n = strs.length;
int k = Integer.valueOf(strs[n - 1]);
int[] nums = new int[n - 1];
for (int i = 0; i < n - 1; i++) {
nums[i] = Integer.valueOf(strs[i]);
}
PriorityQueue<Integer> minheap = new PriorityQueue<Integer>();
int[] result = new int[k];
for (int i = 0; i < n - 1; i++) {
minheap.offer(nums[i]);
}
for (int i = 0; i < k; i++) {
System.out.print(minheap.poll() + " ");
}
// }
}
} import java.util.*;
public class Main
{
public static void main(String [] args)
{
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine())
{
String str=sc.nextLine();
String [] arr=str.split(" ");
int [] arr2=new int[arr.length-1];
for(int i=0;i<arr.length-1;i++)
{
arr2[i]=Integer.parseInt(arr[i]);
}
int n=Integer.parseInt(arr[arr.length-1]);
Arrays.sort(arr2);
for(int i=0;i<n;i++)
{
if(i==n-1)
{
System.out.print(arr2[i]);
}
else
{
System.out.print(arr2[i]+" ");
}
}
}
}
}
import java.util.Scanner;
import java.util.Arrays;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
String[] strs = str.split(" ");
int[] nums = new int[strs.length-1];
for(int i=0;i<strs.length-1;i++){
nums[i]=Integer.valueOf(strs[i]);
}
int k = Integer.valueOf(strs[strs.length-1]);
Arrays.sort(nums);
for(int i=0;i<k;i++){
System.out.print(nums[i]);
if(i != k-1){
System.out.print(" ");
}
}
}
}
}
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
String str = s.nextLine();
String[] str2 = str.split(" ");
int[] int1 = new int[str2.length-1];
for(int i = 0 ; i< str2.length-1 ;i++){
int1[i] = Integer.parseInt(str2[i]);
}
for(int j =0; j<int1.length-1;j++){
for(int i =0 ; i<int1.length-1;i++){
if(int1[i]>int1[i+1]){
int k = int1[i];
int1[i] = int1[i+1];
int1[i+1] = k;
}
}
}
int i = 0;
for (; i < Integer.parseInt(str2[str2.length-1])-1; i++){
System.out.print(int1[i]);
System.out.print(" ");
}
System.out.print(int1[i]);
}
}
//最小堆实现的优先队列
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int count = 0;
int[] array = new int[101];
while (in.hasNext())
array[count++] = in.nextInt();
int k = array[count - 1];
PriorityQueue<Integer> min = new PriorityQueue<>();
for (int i = 0; i < count - 1; i++)
min.offer(array[i]);
for (int i = 0; i < k; i++) {
if (i < k - 1)
System.out.print(min.poll() + " ");
else
System.out.println(min.poll());
}
}
}
---------------------------------------------------------------
//修改输入数据获取的方式
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String string = in.nextLine();
String[] strings = string.split("\\s+");
int k = Integer.parseInt(strings[strings.length - 1]);
int[] array = new int[strings.length - 1];
for (int i = 0; i < strings.length - 1; i++)
array[i] = Integer.parseInt(strings[i]);
Arrays.sort(array);
for (int i = 0; i < k; i++) {
if (i < k - 1)
System.out.print(array[i] + " ");
else
System.out.println(array[i]);
}
}
}
import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String[] numbers = scanner.nextLine().split(" "); int n = numbers.length - 1; int k = Integer.parseInt(numbers[n]); String temp; int m = 0; for (int j = n - 1; j >= 0; j--) { for (int i = j; i >= 1; i--) { if (Integer.parseInt(numbers[i]) < Integer.parseInt(numbers[i - 1])) { temp = numbers[i - 1]; numbers[i - 1] = numbers[i]; numbers[i] = temp; } } } for (int i = 0; i < k - 1; i++) { System.out.print(numbers[i]); System.out.print(" "); } System.out.print(numbers[k - 1]); } } }这个题就是一个不完全的冒泡排序就可以解决,把所有输入的数字放到一个数组里面,最后一个数字是k值,不参与排序,把最小的k个按照从小到大的顺序依次冒泡到前面,然后输出即可
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] strArr = sc.nextLine().split(" +");
sc.close();
int[] arr = new int[strArr.length-1];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(strArr[i]);
}
int k = Integer.parseInt(strArr[strArr.length-1]);
Arrays.sort(arr);
for (int i = 0; i < k; i++) {
if(i == k-1)
System.out.println(arr[i]);
else
System.out.print(arr[i]+" ");
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
while (cin.hasNextInt()) {
int cur = cin.nextInt();
list.add(cur);
}
int k = list.remove(list.size() - 1);
Collections.sort(list);
for (int i = 0; i < k; i++) {
if (i != 0)
System.out.print(" ");
System.out.print(list.get(i));
}
}
} //由于本题要求输出的最小的k个数是升序排列,所以使用最小堆
import java.util.*;
public class Main{
//调整以下标i的结点为根节点的堆
public static void minHeapify(int [] A, int i, int minHeapSize){
int l = 2*i + 1;//左孩子下标
int r = 2*i + 2;//右孩子下标
int largest = 0;//根节点,左右孩子中结点最小的下标
if(l < minHeapSize && A[i]>A[l]){
largest = l;
}else{
largest = i;
}
if(r < minHeapSize && A[largest] > A[r]){
largest = r;
}
if(largest != i){
int temp = A[i];
A[i] = A[largest];
A[largest] = temp;
minHeapify(A,largest,minHeapSize);
}
}
//构建最小堆
public static void buildMinHeap(int []A){
int minHeapSize = A.length;
for(int i=(minHeapSize/2-1) ; i>=0; --i){
minHeapify(A,i,minHeapSize);
}
}
//获取最小的k个数
public static void getSmallKNum(int []A, int k){
int minHeapSize = A.length;
buildMinHeap(A);
for(int i=A.length-1; i>0; --i){
if(k == 0) break;
int temp = A[0];
A[0] = A[i];
A[i] = temp;
minHeapSize--;
k--;
minHeapify(A,0,minHeapSize);
}
}
//主程序
public static void main(String[] args){
//数据输入
Scanner in = new Scanner(System.in);
String[] s = in.nextLine().split(" ");
int []A = new int[s.length-1];
int k = 0;
for (int i=0; i<s.length; ++i){
if(i < s.length-1){
A[i] = Integer.parseInt(s[i]);
}else{
k = Integer.parseInt(s[i]);
}
}
//获取最小的k个数,从数组A末尾向前数k个即为升序的最小的k个数
getSmallKNum(A,k);
//按要求打印
for(int i=A.length-1; i> A.length-k ; --i){
System.out.print(A[i] + " ");
}
System.out.println(A[A.length-k]);
}
}