网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 java求数组第二大元素
范文
    java求数组第二大元素,假设该数组所有数都为非负整数,且所有数字都各自不同。
    package array;
    public class SecondMaxElem {
    public static int getSecondMaxElem(int[] array) {
    if(array == null || array.length <= 1) {
    return -1;
    }
    int max = array[0] > array[1] ? array[0] : array[1];
    int secMax = array[0] + array[1] - max;
    int len = array.length;
    for(int i = 2; i < len; i++) {
    int cur = array[i];
    if(cur > secMax) {
    secMax = cur;
    if(secMax > max) { // swap
    int temp = secMax;
    secMax = max;
    max = temp;
    }
    }
    }
    return secMax;
    }
    public static int getSecondMaxElem2(int[] array) {
    if(array == null || array.length <= 1) {
    return -1;
    }
    int max = array[0] > array[1] ? array[0] : array[1];
    int secMax = array[0] + array[1] - max;
    int len = array.length;
    for(int i = 2; i < len; i++) {
    int cur = array[i];
    if(cur > max) {
    secMax = max;
    max = cur;
    }
    else if(cur > secMax && cur < max) {
    secMax = cur;
    }
    else {
    // 其他情况最大值和第二大值不变,可以画一个坐标轴
    }
    }
    return secMax;
    }
    public static void main(String[] args) {
    int[] array = new int[] { };
    /*System.out.println("算法1: " + getSecondMaxElem(array));
    System.out.println("算法2: " + getSecondMaxElem2(array));
    array = new 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));*/
    }
    }
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/25 0:26:16