快排可视化

1. 结果

红色为被选中的pt

1.1 结果图

结果图

1.2 动画图

1个pt排好序后就把该pt标红
在这里插入图片描述

2. 代码

2.1 快排代码

  private Integer selPt(List<Integer> list, int left, int right) {
        if (left >= right) {
            return left;
        }
        int ptVal = list.get(left);
        int l =left, r=right;
        while (l < r) {
            while (l < r && list.get(r) > ptVal) {
                r--;
            }
            while (l < r && list.get(l) <= ptVal) {
                l++;
            }

            if (l < r) {
                int t = list.get(l);
                list.set(l, list.get(r));
                list.set(r, t);
            }
        }
        list.set(left, list.get(l));
        list.set(l, ptVal);
        return l;
    }


public void quickSort(List<Integer> list, int l, int r) {
        if (l >= r) {
            return;
        }
        int pt = selPt(list, l, r);
        quickSort(list, l, pt-1);
        quickSort(list, pt+1, r);
    }

2.2 绘图代码

参照 冒泡排序可视化

要想实现结果图中代码 需要稍加改造 选出来pt后指定该pt位置的颜色

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值