`
jxb1016
  • 浏览: 22498 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用java从一个整数数组中查找第二大的数,仅用一次循环,不使用java自带的排序

阅读更多
package com.jxb.test;

public class FindSecMax {

	public int findSecMax(int[] data) {

		int maxNum = 0;
		int secMaxNum = 0;
		// 先将前两个元素按大小分别赋给第一大和第二大的数
		if (data.length < 2)
			return -1;
		if (data[0] >= data[1]) {
			maxNum = data[0];
			secMaxNum = data[1];
		} else {
			maxNum = data[1];
			secMaxNum = data[0];
		}
		// 从第三个开始循环,如果元素大于最大值,则最大值更新,原最大值赋给第二大值
		// 如果该元素不大于最大值,且大约第二大的值,则第二大的值更新
		for (int i = 2; i < data.length; i++) {
			if (data[i] > maxNum) {
				secMaxNum = maxNum;
				maxNum = data[i];
			} else {
				if (data[i] >= secMaxNum) {
					secMaxNum = data[i];
				}
			}
		}

		return secMaxNum;

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		FindSecMax fsm = new FindSecMax();
		int[] a = new int[] { 10, 9,9, -70000, -90000, -600000,
				-500000, -32769 };
		System.out.println(fsm.findSecMax(a));

	}

}

分享到:
评论

相关推荐

    java中文排序,数字字母汉字排序

    在Java编程语言中,对包含中文、数字和字母的数据进行排序是一项常见的任务。这个场景下,我们关注的是如何实现一个自定义的排序规则,按照数字、字母和汉字的顺序进行排列。以下是对这一主题的详细解释。 首先,...

    Java 整数排序 三个数由小到大排列输出.rar

    一个Java数学排序小程序,给定三个整数x,y,z,程序处理后让这三个数由小到大排列输出,代码编写思路:想办法把最小的数放到x上,先将x与y进行比较,如果x&gt; y则将x与y的值进行交换,然后再用x与z进行比较,如果x&gt; z则...

    java代码-使用java,一个整数各个位上的最大数字的源代码

    java代码-使用java,一个整数各个位上的最大数字的源代码 ——学习参考资料:仅用于个人学习使用!

    从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集"异或

    按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。 【样例输入】 5 1 4 32 8 7 9 -6 5 2 87 10 1 【样例输出】 87 32 10 9 8 7 4 2 -6 【样例说明】 第一...

    JAVA中判断一个整数是否为质数

    在Java编程语言中,判断一个整数是否为质数是一个常见的数学问题,也是计算机科学基础课程中的典型示例。质数定义为只能被1和它本身整除的大于1的自然数,例如2、3、5、7、11等。在实际应用中,检查一个数是否为质数...

    Java实验报告一java基础.doc

    - 在Java中,二维数组可以通过声明一个一维数组的数组来创建,例如`int[][] array = new int[2][3];` - 生成0到100之间的随机整数,可以使用`(int)(Math.random() * 100)`。 - 对数组进行排序,Java提供了`Arrays...

    java求一个整数的因子.7z

    在Java编程语言中,求解一个整数的因子是一个常见的问题。因子,也称为因数,是能够整除给定整数的正整数。在这个问题中,我们需要编写一段代码来找出并打印出一个整数的所有因子。下面,我们将详细讨论如何实现这个...

    java代码-使用java输入参数为一个整数,输出为该整数各个位上的最大数字的源代码

    java代码-使用java输入参数为一个整数,输出为该整数各个位上的最大数字的源代码 ——学习参考资料:仅用于个人学习使用!

    java语言程序-数组编程题目.docx

    例如,在给定的代码中,我们可以使用 Random 对象来生成 0-9 之间的 100 个随机整数,并显示每一个数的个数。 知识点 8:数组最小元素 在 Java 中,我们可以使用循环语句来查找数组中的最小元素。例如,在给定的...

    Java常用排序算法&程序员必须掌握的8大排序算法+二分法查找

    在Java中实现这些算法,需要理解它们的基本原理,以及如何使用Java的内置数据结构如数组和ArrayList。例如,快速排序通常使用递归,而归并排序则需要使用到数组的复制操作。二分查找则涉及对数组或ArrayList的索引...

    java 八大排序

    基本思想:算法先将要排序的一组数按某个增量 d(n/2,n 为要排序数的个数)分成若干组,每组中记录的下标相差 d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接...

    基于Java和Python语言使用函数输出一个整数的逆序数.zip

    基于Java和Python语言使用函数输出一个整数的逆序数.zip 基于Java和Python语言使用函数输出一个整数的逆序数.zip 基于Java和Python语言使用函数输出一个整数的逆序数.zip 基于Java和Python语言使用函数输出一个整数...

    java 随机生成整数

    这种处理方式确保了每个数字仅出现一次,但值得注意的是,随着数组逐渐填满,找到一个未使用的数字会变得越来越困难,这可能导致性能问题,特别是在大数组中。 #### 3. 输出特定条件下的数字 代码进一步处理了输出...

    用JAVA实现3个数排序

    用JAVA实现的排序额 学JAVA 小试身手

    java求一个整数的因子源码

    然后,我们使用一个`for`循环,从1遍历到`num`的平方根(`Math.sqrt(num)`),这是因为在任何情况下,一个整数的最大因子都不会超过它的平方根。在循环中,我们检查当前的`i`是否能整除`num`,如果可以,`i`就是一个...

    数据结构(JAVA)求一个含有n个整数元素的数组a0..n-1中的最大元素

    然后,通过一个for循环从数组的第二个元素开始遍历,如果当前元素大于已知的最大值,就更新最大值。当遍历完整个数组后,返回找到的最大值。 这种方法虽然简单,但效率并不高,因为它的时间复杂度是O(n),其中n是...

    java_10个任意数排序代码

    这些知识点涵盖了常见的排序算法实现,包括冒泡排序、选择排序以及如何使用Java内置的排序方法等。 ### Java排序算法实现 #### 1. 冒泡排序 冒泡排序是一种简单的排序算法,通过重复地遍历待排序数组,比较相邻...

    Java中实现参数名ASCII码从小到大排序(字典序).doc

    在Java编程中,有时我们需要对一组参数按照字典顺序(ASCII码值从小到大)进行排序,例如在创建签名或构建URL查询字符串时。这里提供了一个名为`createSign`的方法,它接受一个`Map, Object&gt;`类型的参数,并返回一个...

    使用java将十进制整数转换为二进制数

    本代码信息: 使用语言:java 功能:将整数(包括正负整数)转换成对应的二进制数,然后再控制台上显示。

    Java程序员必知的8大排序

    Java实现中,我们通过两个循环来完成这个过程,外层循环控制遍历的次数,内层循环则用于找到当前未排序部分的最小元素,并与第一个位置的元素交换。简单选择排序的时间复杂度同样是O(n^2),效率并不高,但在某些特定...

Global site tag (gtag.js) - Google Analytics