当前位置: 首页 > news >正文

Java 二维数组元素降序排序(非冒泡排序)

说明:每次比较出最大值后,把最大值设置为最小值-1,再次比较该数组;
创建Object b[][] = new Object[N][2];来存储String和Int两种类型数据到同一个数组里

package com.MyJava;

import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("输入学生人数:");
		String Num = scan.next();
		int N = Integer.parseInt(Num);
		// 创建Object类型二维数组并赋值
		Object[][] a = new Object[N][2];
		int max = 0, min = 0;
		String maxName = null;
		for (int i = 0; i < N; i++) {
			System.out.println("输入第" + (i + 1) + "个学生的姓名:");
			String Name = scan.next();
			a[i][0] = Name;
			System.out.println("输入第" + (i + 1) + "学生人数的成绩:");
			int Score = scan.nextInt();
			a[i][1] = Score;
			// 把第一个输入成绩赋值给min,只需要赋值一次!
			if (i == 0) {
				min = (int) a[0][1];
			}
			// 计算最小值
			if ((int) a[i][1] < min) {
				min = (int) a[i][1];
			}
		}
		// 计算最大值并依次输出
		Object b[][] = new Object[N][2];
		System.out.println("成绩由高到低的排序为:");
		for (int i = 0; i < N; i++) {
			int j = 0;
			// 循环计算最大值
			for (j = 0; j < N; j++) {
				if ((int) a[j][1] > max) {
					max = (int) a[j][1];
					maxName = (String) a[j][0];
				}
			}
			System.out.println("姓名:" + maxName + ";成绩:" + max);
			// 找到最大值,并设为最小值,下次循环就能找到更小的值
			for (j = 0; j < N; j++) {
				if ((int) a[j][1] == max) { // 找到最大值对应的位置j
					a[j][1] = min-1; // 把最大值设为最小值-1
					maxName = (String) a[j][0];
					max = min-1; // 设置max为最小值-1,用于下次循环比较出最大值
				}
			}
		}
	}
}

输入学生人数:
5
输入第1个学生的姓名:
张三
输入第1学生人数的成绩:
66
输入第2个学生的姓名:
李四
输入第2学生人数的成绩:
89
输入第3个学生的姓名:
王二
输入第3学生人数的成绩:
99
输入第4个学生的姓名:
莉莉
输入第4学生人数的成绩:
87
输入第5个学生的姓名:
陈琳
输入第5学生人数的成绩:
74
成绩由高到低的排序为:
姓名:王二;成绩:99
姓名:李四;成绩:89
姓名:莉莉;成绩:87
姓名:陈琳;成绩:74
姓名:张三;成绩:66

相关文章:

  • 【JavaEE进阶】Linux常用命令
  • Day20-前端Web案例——部门管理
  • MySQL 性能优化方向
  • 类加载器、双亲委派
  • Jetpack Compose 显示时间
  • 深入Python C API:掌握常用函数与实战技巧
  • 星越L_驾驶模式讲解
  • java项目之在线购物系统(源码+文档)
  • 【商城实战(54)】解锁商城国际化密码:内容管理全攻略
  • 【PCB工艺】晶体管的发展历史
  • 如何提升 Java 开发能力?
  • 智能施工方案生成工具开发实践:从架构设计到核心实现
  • 25年护网二面
  • MySQL -- 复合查询
  • 关于VMware安装win11出现此电脑无法运行win11系统解决方法
  • Spring Boot整合MyBatis
  • 智能搜索时代:如何通过AI搜索与GEO策略打造品牌护城
  • 银河麒麟操作系统的上下游版本判断
  • AI鸟类识别技术革新生态监测:快瞳科技如何用“智慧之眼”守护自然?
  • yarn 装包时 package里包含sqlite3@5.0.2报错
  • 国际观察|韩国在政局多重不确定性中迎接总统选举
  • 沈晓萍︱严金清:比斯坦因更早获得敦煌文物的无锡名士
  • 4月一二线城市新房价格环比上涨,沪杭涨幅居百城前列
  • 五一去哪玩?“时代交响”音乐会解锁艺术假期
  • 关于“十五五”,在上海召开的这场座谈会释放最新信号
  • 滨江集团:一季度营收225.07亿元,净利润9.75亿元