数组integer[]有10000个数输出第二大
时间: 2024-10-13 20:10:11 浏览: 10
Java 数组练习题(1).docx
数组`int[]`中有10000个整数,要找到第二大的数,你可以采用以下步骤:
1. 首先对整个数组进行排序,可以使用快速选择算法(因为只需要找到第k大元素,而不需要全部排序),这比冒泡排序等复杂度较高的算法效率更高。
2. 排序完成后,数组的第一个元素就是最大的,第二个元素即为第二大值。
如果你需要直接遍历一次数组来找到第二大值,可以设置两个变量,一个`max`用于记录当前最大值,另一个`secondMax`用于记录第二大值。遍历时,如果遇到比`max`小但大于`secondMax`的数,就更新`secondMax`。遍历结束后,`secondMax`就会保存第二大数值。
以下是Java示例代码:
```java
public int findSecondLargest(int[] arr) {
if (arr.length < 2) {
throw new IllegalArgumentException("数组长度至少需要2");
}
int max = Integer.MIN_VALUE;
int secondMax = Integer.MIN_VALUE;
for (int num : arr) {
if (num > max) {
secondMax = max;
max = num;
} else if (num > secondMax && num != max) { // 忽略等于最大值的情况
secondMax = num;
}
}
return secondMax;
}
```
阅读全文