java编程输入整数数组 arr, 找出其中最小的k个数。例如, 输入4、5、1、 6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。
时间: 2023-03-19 14:22:10 浏览: 88
这里提供一种基于Java的解决方案,用于找出一个整数数组中的最小的k个数:
1. 首先创建一个长度为k的数组(称为最小值数组)。
2. 将输入的整数数组进行排序,可以使用Arrays.sort()方法。
3. 遍历排序后的数组,将前k个数存入最小值数组中。
4. 遍历排序后的数组剩余部分,对于每个数,如果它比最小值数组中的最大值还小,就替换最小值数组中的最大值。
5. 遍历完成后,最小值数组中的数即为原数组中的最小的k个数。
以下是一个基于Java的代码实现:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr = {4, 5, 1, 6, 2, 7, 3, 8};
int k = 4;
int[] minK = new int[k];
Arrays.sort(arr);
for (int i = 0; i < k; i++) {
minK[i] = arr[i];
}
for (int i = k; i < arr.length; i++) {
if (arr[i] < minK[k-1]) {
minK[k-1] = arr[i];
Arrays.sort(minK);
}
}
for (int i = 0; i < k; i++) {
System.out.print(minK[i] + " ");
}
}
}
```