一、大致思路
- 初始化2个最小值,firstmin,secondmin
2.遍历所有元素,假如当前元素小于firstmin,那么将更新firstmin,secondmin.如果小于secondmin直接更新secondmin
二、具体实现
public class FindSecondMin {
public static void main(String[] args) {
int[] array = new int[8];
Random r = new Random();
for(int i = 0;i<array.length;i++){
array[i]=r.nextInt(100);
}
for(Integer i:array){
System.out.print(i+" ");
}
System.out.println();
int result=findSecondMin(array,array.length);
System.out.println("第二小的数是: "+result);
}
private static int findSecondMin(int[] a, int n) {
int min=0,secondMin=0;
//先初始化2个最小值,min,secondMin
if(a[0]<a[1]){
min=a[0];
secondMin=a[1];
}else{
min=a[1];
secondMin=a[0];
}
for(int i=2;i<n;i++){
if(a[i]<secondMin){
if(a[i]<min){ //比最小值还小 更新min,secondMin
secondMin=min;
min=a[i];
}else{
//如果只小于secondMin 直接更新secondMin
secondMin=a[i];
}
}
}
return secondMin;
}
}