افترض أن جميع الأرقام الموجودة في المصفوفة هي أعداد صحيحة غير سالبة، وأن جميع الأرقام فريدة.
انسخ رمز الكود كما يلي:
مصفوفة الحزمة؛
الطبقة العامة SecondMaxElem {
public static int getSecondMaxElem(int[] array) {
إذا (صفيف == فارغ || طول المصفوفة <= 1) {
العودة -1؛
}
int max = array[0] > array[1] ? array[0] : array[1];
int secMax = array[0] + array[1] - max;
int len =ray.length;
ل(int i = 2; i < len; i++) {
int cur = array[i];
إذا (كور > سيك ماكس) {
secMax = cur;
if(secMax > max) { // مبادلة
int temp = secMax;
secMax = max;
الحد الأقصى = درجة الحرارة؛
}
}
}
إرجاع ثانية ماكس؛
}
public static int getSecondMaxElem2(int[] array) {
إذا (صفيف == فارغ || طول المصفوفة <= 1) {
العودة -1؛
}
int max = array[0] > array[1] ? array[0] : array[1];
int secMax = array[0] + array[1] - max;
int len =ray.length;
ل(int i = 2; i < len; i++) {
int cur = array[i];
إذا (كور > الحد الأقصى) {
secMax = max;
ماكس = كير؛
}
آخر إذا(cur > secMax && cur <max) {
secMax = cur;
}
آخر {
// في حالات أخرى، تظل القيمة القصوى والقيمة القصوى الثانية دون تغيير، ويمكن رسم محور الإحداثيات.
}
}
إرجاع ثانية ماكس؛
}
public static void main(String[] args) {
int[] array = new int[] { };
/*System.out.println("الخوارزمية 1:" + getSecondMaxElem(array));
System.out.println("الخوارزمية 2:" + getSecondMaxElem2(array));
صفيف = جديد int[] { 2 };
System.out.println("الخوارزمية 1:" + getSecondMaxElem(array));
System.out.println("الخوارزمية 2:" + getSecondMaxElem2(array));*/
array = new int[] { 2, 3, 1, 6, 7, 5, 9 };
System.out.println("الخوارزمية 1:" + getSecondMaxElem(array));
System.out.println("الخوارزمية 2:" + getSecondMaxElem2(array));
/*array = new int[] { 1, 2, 3, 3, 4, 5, 5 };
System.out.println("الخوارزمية 1:" + getSecondMaxElem(array));
System.out.println("الخوارزمية 2:" + getSecondMaxElem2(array));*/
}
}