冒泡排序:
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()); } }运行结果