首页 > 编程知识 正文

快速排序流程图,快速排序图文详解

时间:2023-05-05 15:21:15 阅读:21426 作者:4511

0 .前言我找不到一篇让人心情愉快的一次性理解的文章,所以我决定把每一步都图解出来。代码在最后

把共享博客共享的教科书图放在这里

1 .图解开始

贴一张大图

2. Java代码实现package learn.algorithm.sort; import java.util.Arrays; import Java.util.stream.intstream; /**快速排序*应用最广泛的排序算法,实现简单,可应用于各种传入数据,在典型的APP应用中比其他排序算法快得多。 最引人注目的特点是就地排序,长度为n的数组排序所需的时间与NlgN成正比。 * @ authorwangwenlei * @ date :2021/5/27 * */publicclassfastsort { publicstaticvoidmain (字符串[ ] args (int ) ) ) ) fastsort(data,0,data.length - 1 ); arrays.stream (数据).Foreach ) system.out:3360println; } publicstaticvoidfastsort (int [ ] data,int low,int high ) if (low=high ) { return; } int pivot=data[low]; int i=low; int j=high; 用于将j向左移动到while(Ij )//data [ j ] pivot while (ijpivotdata [ j ] ) (j----; (if ) Ij ) ) { data [i]=data[j]; I; }while(Ijpivotdata[I] ) I; (//下面的if在第一次创建时丢失,逻辑if(Ij ) ) { data [j]=data[i]; j----; } } data[i]=pivot; fastsort (数据,低,----I ); //我在这里第一次写的时候用错了I,现在改成了j。 错误的原因I在上面已经减少了快速(数据、j、高)。 }清爽的茶博客

推荐博客的文章也很好。 https://blog.csdn.net/weixin _ 42109012/article/details/91645051

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。