题目
找出数组中第二大的数(以下测试结果会受到当前环境的影响,时间的变化太多,仅供参考,不能代表绝对的结果)
思路1
用一个两个元素的数组max,max[0]存放最大值,max[1]存放第二大的值
代码
/*
*找出数组中第二大的数
*/
public class SearchSecondMaxNumber {
public static void main(String args[]){
int nums[]={-31,4,89,22,45,42,6,-5};
int max[]=new int[2];//max[0]储存最大值,max[1]储存最小值
if(nums[0]>nums[1]){
max[0]=nums[0];
max[1]=nums[1];
}
else
{
max[1]=nums[0];
max[0]=nums[1];
}
for (int i=2;i<nums.length;++i)
{
if(nums[i]>max[0])
{
max[1]=max[0];
max[0]=nums[i];
}
else{
if(nums[i]>max[1]){
max[1]=nums[i];
}
}
}
System.out.println(max[1]);
}
}
结果
思路
排序,取倒数第二个,这种测试的时间总体来说比较慢。
代码
int nums[]={-31,4,89,22,45,42,6,-5};
Arrays.sort(nums);
System.out.println(nums[nums.length-2]);
结果: