当前位置:   article > 正文

快速排序算法C++实现_用c 写快速排序算法的伪代码

用c 写快速排序算法的伪代码

1、快速排序的原理是:找到一个主元,将无序的数组分为两部分,比主元大的和比主元小的,以升序为例,将比主元小的依次放在主元的左边,比主元大的一次放在主元右边。对主元左边的再使用快速排序,一直到数组只有两个元素,则将会生成有序的数组,依次对主元右边的进行上述操作即可获得有序数组。

2、伪代码

  1. PARTITION(Arr , left , right){
  2. //选择主元
  3. pca = Arr[right];
  4. //下标量(比主元大或小的元素应该放置的位置)
  5. index = left -1;
  6. for i = left to right-1 //主元就不用比较了
  7. if Arr[i] <= pca //扫到的元素比主元小,就将其放到最左边
  8. index++; //有比主元小的了,往后一位,如果下次有的话就放到下一个位置
  9. swap(Arr[index] , Arr[i])
  10. //循环完毕后,将主元放到中间。此时的index指向的是一个比主元小的元素的位置,
  11. //其下一位就是不比主元小的元素,将主元换到index+1即可;
  12. swap(Arr[index+1],Arr[right])
  13. //甩出来主元的位置,用于子数组的划分
  14. return index+1
  15. }
  16. QuickSort(Arr , left , right)
  17. if left < right
  18. pca = Partition(Arr , left , right)
  19. QuickSort(Arr , left , pca - 1);
  20. QuickSo
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/449254
推荐阅读
相关标签
  

闽ICP备14008679号