美文网首页
快速排序

快速排序

作者: 灰世界 | 来源:发表于2019-05-20 15:26 被阅读0次

    快速排序 

    基本思想 :  1. 选取数组中 最后一个元素 , 通过遍历, 将大于和小于的元素交换到, 该元素的左右两侧 ; 2. 接着将两侧的元素, 通过上述的方法进行递归处理, 直至 递归到一个元素;

    实现思路: 在start元素上 , 设置两个游标 (i ,j).  分如下三种情况, 对游标进行移动 :

           1. 如果该元素 大于 最后一个元素 , 将 j 游标往后移动一位;

           2. 当该元素 小于 最有一个元素时 , 两个游标在同一个位置 ,则将 j, 和 i 位置的元素 同时后移动一位;

           3. 当该元素 小于 最有一个元素时 , 两个游标不在一个位置 ,则将 j, 和 i 位置的元素 进行交换位置后,同时后移动一个位置;

    如图 :

    思路流程图

    代码实现 :

    实现代码


    时间复杂度:  最坏: O(n2) , 平均: O(nlogn)


    空间复杂度: 上面方法是原地排序 O(1)


    核心总结 :  1. 递归     2. 分区   主要是原地排序的分区

    相关文章

      网友评论

          本文标题:快速排序

          本文链接:https://www.haomeiwen.com/subject/otmkzqtx.html