寻找数组中第二小的元素
示例代码一:先把数组进行升序排序 排完序后再进行遍历比较
public static void main(String[] args) {
int arr[]={-4,-4,56,34,76,34,23,4,75,87,50,3,5,6,};
//冒泡排序
for(int i=0;i<(arr.length)-1;i++){
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
int secondNum=arr[0];
for (int i=0;i<arr.length;i++){
if(arr[i]>secondNum){
secondNum=arr[i];
break;
}
}
System.out.println("secondNum---->"+secondNum);
}
方法二:
public static void main(String[] args) {
int arr[]={-87,-97,23,90,12,-87,-87};
int firstmin = Integer.MAX_VALUE; //第一小的元素 初始值设为int的最大取值
int secondmin = Integer.MAX_VALUE; //第二小的元素 初始值设为int的最大取值
for(int value:arr){
if (value < firstmin) //小于最小的元素 更新1和2
{
secondmin = firstmin;
firstmin = value;
}
else if (value < secondmin && value != firstmin) //小于倒数二的 更新2
{
secondmin = value;
}
}
System.out.println("firstmin--------->"+firstmin);
System.out.println("secondmin--------->"+secondmin);
}
方法三:
public static void main(String[] args) {
int arr[]={34,12,23,90,12,-87,-27};
Arrays.sort(arr); //排序 升序
int secondNum=arr[0];
for(int i=1;i<arr.length;i++){
if(arr[0]<arr[i]){
secondNum=arr[i];
break;
}
}
System.out.println(secondNum);
}