<分析>:循环整个序列,以第一数为最大值max,当下一个数大于max时,先将max赋值给maxSecond,再将这个数赋值给max;否则如果这个数小于max且大于maxSecond,就将这个数赋值给maxSecond。
package com.nd;
/**
*
* @author zy
* @date 2017年10月10日 上午8:52:37
* @Decription 给定一个序列,取出其中第二大的数,要求不对整个序列排序
*/
public class Ex2 {
public static void main(String[] args) {
int[] arr = {5,6,98,45,212,36,96,48,99,98,212,200,200};
GetSecondMaxNumber(arr,arr.length);
}
static void GetSecondMaxNumber(int[] arr,int length){
int i ,max,secondMax;
max=arr[0];
secondMax=Integer.MIN_VALUE;
for(i=1;i<length;i++){
if (arr[i]>max) {
secondMax=max;
max=arr[i];
}else if (arr[i] < max && secondMax <arr[i]) {
secondMax=arr[i];
}
}
System.out.println("第二大的数为"+secondMax);
}
}