使用JAVA完成快速排序

使用JAVA完成快速排序


刚一年的萌新,有什么不足还请dalao指出来。
下面的代码,直接复制粘贴运行main方法即可。

import java.util.*;

public class kuaisupaixu {

    public static Map<String, Object> fen(List<Integer> list){
        List<Integer> qianList = new ArrayList<>();
        List<Integer> houList = new ArrayList<>();
        List<Integer> linjieList = new ArrayList<>();

        Integer linjie = list.get(0);
        linjieList.add(linjie);
        list.remove(0);

        for (int i = 0; i < list.size(); i++) {
            if(list.get(i) < linjie){
                qianList.add(list.get(i));
            }else{
                houList.add(list.get(i));
            }
        }

        Map<String, Object> map = new HashMap<>();
        map.put("qian", qianList);
        map.put("hou", houList);
        map.put("linjie", linjieList);

        return map;
    }

    public static void gao(List<Integer> list){

        List<List<Integer>> zjList = new ArrayList<>();
        zjList.add(list);
        while(zjList.size() <= list.size()){
            List<List<Integer>> gdList = new ArrayList<>();
            for(int i = 0; i < zjList.size(); i++){
                if(zjList.get(i).size() > 1){
                    Map<String, Object> map = fen(zjList.get(i));
                    List<Integer> qianList = (List<Integer>)map.get("qian");
                    List<Integer> houList = (List<Integer>)map.get("hou");
                    List<Integer> ljList = (List<Integer>)map.get("linjie");
                    if(qianList.size()>0){
                        gdList.add(qianList);
                    }
                    if(ljList.size()>0){
                        gdList.add(ljList);
                    }
                    if(houList.size()>0) {
                        gdList.add(houList);
                    }
                }else{
                    gdList.add(zjList.get(i));
                }
            }
            zjList.clear();
            for (int i = 0; i < gdList.size(); i++){
                zjList.add(gdList.get(i));
            }
            gdList.clear();
        }
        List<Integer> integerList = new ArrayList<>();
        for(int i = 0; i < zjList.size(); i++){
            for(int j = 0; j < zjList.get(i).size(); j++){
                integerList.add(zjList.get(i).get(j));
            }
        }

        System.out.println(integerList);

    }

    public static void main(String[] args){
        List<Integer> list = new ArrayList<>(Arrays.asList(5,3,8,4,7,8,9,2,1,4,5,6,9,3,2,5,8));
        gao(list);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值