黑马程序员技术交流社区

标题: 求一个数组中的第二大的数? [打印本页]

作者: 貂裘换酒    时间: 2016-6-26 09:48
标题: 求一个数组中的第二大的数?
第一种方法:  直接排序再取值

    public class Test3 {
public static void main(String[] args) {
int[] a = { 5, 4, 9, 8, 10,12,2,24,35,42,4,3,5 };
int max, temp;
max = temp = a[0];
int n,i;
for (n = 0; n < a.length; n++) {
for(i=0;i<a.length-1;i++){
if(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
System.out.println(a[a.length-2]);
}
}

第二种方法:   

public class Test {
public static void main(String[] args) {
int[] a = { 5, 4, 9, 8, 10,12,2,24,35,42,4,3,5 };
int max, max2;
max = max2 = a[0];
int n;
for (n = 1; n < a.length; n++) {
if (a[n] > max2) {
if (a[n] > max) {
max2 = max;
max = a[n];
} else {
max2 = a[n];
}
}
}
    System.out.println(max2);
}
}
第三种方法: 简单方法:

public class Test2 {
public static void main(String[] args) {
int [] a={2,4,56,7,45,6,76};
int max=0,max2=0;
int i;
for(i=0;i<a.length;i++){
if(max<a[i]){
max2=max;
max=a[i];
}
}
System.out.println(max2);
}
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2