冒泡排序:
JAVA语言提供了List接口,表示元素可以重复的一个广义线性表。
具体实现类:ArrayList,是长度可变的数组。
具体代码如下:
public class student {
private String name;
private int age;
private double grade;
public student(String name,int age,double grade) {
this.name=name;
this.age=age;
this.grade=grade;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public double getGrade() {
return grade;
}
}
import java.util.ArrayList;
import java.util.List;
public class studentclass {
private List<student>stuList;
private int size;
public studentclass() {
size=0;
stuList=null;
}
public void createclass() {
String names[]= {"张三","王五","李四","赵六","孙琦"};
double grades[]= {89,90,78,85,73};
int ages[]= {17,20,17,18,19};
size=names.length;
stuList=new ArrayList<student>();
student temp;
for(int i=0;i<size;i++) {
temp=new student(names[i],ages[i],grades[i]);
stuList.add(temp);
}
}
public void sort() {
student temp;
for(int i=0;i<size;i++) {
for(int j=1;j<size-i;j++) {
if(stuList.get(j-1).getGrade()>stuList.get(j).getGrade()) {
temp=stuList.get(j-1);
stuList.set(j-1,stuList.get(j));
stuList.set(j, temp);
}
}
}
}
public String output() {
StringBuilder studentInfo=new StringBuilder();
for(student stu:stuList) {
studentInfo.append("姓名:"+stu.getName()+"\t成绩:"+stu.getGrade()+"\r\n");
}
return studentInfo.toString();
}
}
public class test {
public static void main(String[] args) {
studentclass sclass=new studentclass();
sclass.createclass();
System.out.println("原始序列:");
System.out.println(sclass.output());
sclass.sort();
System.out.println("数组冒泡排序结果:");
System.out.println(sclass.output());
}
}
运行结果