成绩管理系统,改造排序功能

文章讲述了作者在期末作业中尝试使用Java编写快速排序算法,重点介绍了基于《算法导论》的双指针方法,描述了partition函数和递归调用的过程。作者在遇到困难后通过阅读书籍解决了问题。
摘要由CSDN通过智能技术生成

上一集:借着期末作业,写一个JavaWeb项目

快速排序,总分

参考:《算法导论》第七章
在这里手写了原始版的快速排序,双指针乃种方法,下次再研究。
刚开始用双指针乃种方法研究了一天,结果也没研究出来,然后看书,柳暗花明。

private static void quickSort(List<Student>stus,int start,int end){
    if(start<end){
        int p=partition(stus,start,end);
        quickSort(stus,start,p-1);
        quickSort(stus,p+1,end);
    }
}
private static int partition(List<Student>stus,int start,int end){
    int pivot=stus.get(end).mark.sum;
    int i=start-1;
    for(int j=start;j<end;j++){
        if(stus.get(j).mark.sum>=pivot){
            i++;
            swap(stus,i,j);
        }
    }
    swap(stus,i+1,end);
    return i+1;
}

2023年12月19日20:12:20(其他排序方法,每天再来写)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值