java学生成绩排序

【问题描述】
对本班所有学生的上学期的各科平均成绩进行从高到低排序,学生的平均成绩可按照上学期真实平均成绩设计,也可利用随机数自动生成,并对这些平均成绩进行多种方法进行排序。
【基本要求】
请用Java语言编写程序,满足以下要求:
(1)至少采用四种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序),并把排序后的结果写出到不同的文本文件中,文件名自行设计。
(2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),并分析各个排序算法的优劣。
【测试数据】
(1)要求使用全部合法数据,整体非法数据,局部非法数据进行程序测试,以保证程序的稳定。
(2)若平均成绩随机生成,生成的范围为:[60 - 100]。
【实现提示】
成绩的排序可利用学过的排序算法实现,对于结果的写出可利用java的缓冲输入输出字符流进行实现。
__

是否可以理解为对数组排序呢?分别用不同排序方法。


public class BubbleSort {
    
    int a[];
    public int[] getA(){
        return a;
    }
    public BubbleSort() {
        a = new int[]{8,19,2,3,100,99,1000,888,-1,0};
    }
    public BubbleSort(int a[]) {
        this.a = a;
    }
    //冒泡排序
    public void sort(){
        int t=0,kk=0,len=a.length;
        //外循环控制循环的趟数
        for(int i=0;i<len-1;i++){
            //内循环控制每一趟的次数
            kk=0;
            for(int j=0;j<len-i-1;j++){
                //打印每循环一次后数据的变化
                kk++;
//                System.out.println("第"+(i+1)+"趟的第"+kk+"次");
                if(a[j]>a[j+1]){
                    t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
//                print();
            }
        }
        System.out.println("排序后顺序如下:");
        print();
    }
    public void print(){
        
        for (int e : a) {
            System.out.print(e+"\t");
        }
        System.out.println("");
    }
    public static void main(String[] args) {
        BubbleSort bubbleSort = new BubbleSort();
        System.out.println("排序前顺序如下:");
        bubbleSort.print();
        //排序
        long start = System.currentTimeMillis();
        bubbleSort.sort();
        long end = System.currentTimeMillis()-start;
        System.out.println("排序用时:"+end +"毫秒");
    }
}