当前位置:   article > 正文

快速排序实现

快速排序实现
  1. #include <iostream>
  2. #include <vector>
  3. #include <cstdlib>
  4. #include <ctime>
  5. void Qsort(std::vector<int>& arr, int low, int high);//形参绝对不能用unsigned!
  6. int Partition(std::vector<int>& arr, int low, int high);
  7. int main(void)
  8. {
  9. std::vector<int>arr(20);
  10. srand((unsigned int)time(nullptr));
  11. for (int i = 0; i != 20; ++i)
  12. arr[i] = (int)rand() % 100 + 1;
  13. for (int i = 0; i != 20; ++i)
  14. std::cout << arr[i] << ' ';
  15. std::cout << std::endl;
  16. Qsort(arr, 0, arr.size() - 1);
  17. for (int i = 0; i != 20; ++i)
  18. std::cout << arr[i] << ' ';
  19. std::cout << std::endl;
  20. return 0;
  21. }
  22. void Qsort(std::vector<int>& arr, int low, int high)
  23. {
  24. int pivot;
  25. if (low < high)//随处可见的low<high,保证程序正确运行
  26. {
  27. pivot = Partition(arr, low, high);//计算杻枢
  28. Qsort(arr, low, pivot - 1);//杻枢已经归位,无需对其排序
  29. Qsort(arr, pivot + 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/990091
推荐阅读
相关标签
  

闽ICP备14008679号