当前位置:   article > 正文

C/C++实现快排算法_c++快拍

c++快拍

1.快排的实现逻辑:

  • 先从数列中取出一个数作为基准数(通常取第一个数)。
  • 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
  • 再对左右区间重复第二步,直到各区间只有一个数。

2.示意图

3.C/C++代码实现 

  1. void quickSort(int *array, int left, int right)
  2. {
  3. if(NULL == array)
  4. {
  5. return;
  6. }
  7. if(left < right)
  8. {
  9. int pivot = array[left];
  10. int low = left, high = right;
  11. while(low < high)
  12. {
  13. while(array[high] >= pivot && low < high)
  14. high--;
  15. array[low] = array[high];
  16. while(array[low] <= pivot && low < high)
  17. low++;
  18. array[high] = array[low];
  19. }
  20. array[low] = pivot;
  21. quickSort(array, left, low - 1);
  22. quickSort(array, low + 1, right);
  23. }
  24. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号