Asumsikan bahwa semua angka dalam array adalah bilangan bulat non-negatif, dan semua angka adalah unik.
Copy kode kodenya sebagai berikut:
susunan paket;
kelas publik SecondMaxElem {
public static int getSecondMaxElem(int[] array) {
if(array == null || array.panjang <= 1) {
kembali -1;
}
int maks = larik[0] > larik[1] ? larik[0] : larik[1];
int detikMax = larik[0] + larik[1] - maks;
int len = array.panjang;
untuk(int saya = 2; saya < len; saya++) {
int arus = larik[i];
if(saat ini > detikMaks) {
detikMax = saat ini;
if(detikMax > maks) {// tukar
int suhu = detikMax;
detik Maks = maks;
maks = suhu;
}
}
}
kembali detikMax;
}
public static int getSecondMaxElem2(int[] array) {
if(array == null || array.panjang <= 1) {
kembali -1;
}
int maks = larik[0] > larik[1] ? larik[0] : larik[1];
int detikMax = larik[0] + larik[1] - maks;
int len = array.panjang;
untuk(int saya = 2; saya < len; saya++) {
int arus = larik[i];
if(saat ini > maks) {
detik Maks = maks;
maks = skr;
}
else if(saat ini > detikMaks && saat ini < maks) {
detikMax = saat ini;
}
kalau tidak {
// Dalam kasus lain, nilai maksimum dan nilai maksimum kedua tetap tidak berubah, dan sumbu koordinat dapat dibuat.
}
}
kembali detikMax;
}
public static void main(String[] args) {
int[] larik = baru int[] { };
/*System.out.println("Algoritma 1: " + getSecondMaxElem(array));
System.out.println("Algoritma 2: " + getSecondMaxElem2(array));
larik = int baru[] { 2 };
System.out.println("Algoritma 1: " + getSecondMaxElem(array));
System.out.println("Algoritma 2: " + getSecondMaxElem2(array));*/
array = int baru[] { 2, 3, 1, 6, 7, 5, 9 };
System.out.println("Algoritma 1: " + getSecondMaxElem(array));
System.out.println("Algoritma 2: " + getSecondMaxElem2(array));
/*array = int baru[] { 1, 2, 3, 3, 4, 5, 5 };
System.out.println("Algoritma 1: " + getSecondMaxElem(array));
System.out.println("Algoritma 2: " + getSecondMaxElem2(array));*/
}
}