要求:按照成绩的高低对一个人的成绩和这个人的姓名进行排序
注解:知晓创建一个Person数组并且初始化Person数组的方法。
明白静态变量,静态方法和普通变量普通方法的区别。
冒泡排序:内部for循环用于相邻两个数比较大小,然后实现最小(最大)的值排在最后的位置
外部for循环用于多次冒泡,实现剩下的数中的最小(最大)值排在这些数中最后的位置
package com.guo.arithmetic;
import java.util.Scanner;
public class BubbleSort {
public static int m;//输入数据的最大值
public static int n ;//输入数据的个数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// System.out.println("请输入要排序的成绩的最大值");
// m = sc.nextInt();
System.out.println("请输入想要排序的成绩的个数");
n = sc.nextInt();
Person[] person = new Person[100];
for(int i=0;i<n;i++) {
System.out.println("请输入第"+(i+1)+"个人的姓名");
String name = sc.next();
System.out.println("请输入第"+(i+1)+"个人的成绩");
int score = sc.nextInt();
person[i] = new Person(name, score);
}
//根据成绩进行排序
for(int i=0;i<n;i++) {
for(int j=0;j<n-i-1;j++) {
if(person[j].getScore()<person[j+1].getScore()) {
Person temp = person[j];
person[j]=person[j+1];
person[j+1]=temp;
}
}
}
for(int a=0;a<n;a++) {
System.out.println("name:"+person[a].getName()+" score:"+person[a].getScore());
}
}
}
Person
package com.guo.arithmetic;
public class Person {
private String name;
private int score;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public Person(String name, int score) {
super();
this.name = name;
this.score = score;
}
}