21xrx.com
2025-04-02 07:36:29 Wednesday
文章检索 我的文章 写文章
C++实现快速排序算法的类代码
2023-07-04 23:33:30 深夜i     15     0
C++ 快速排序算法 代码

快速排序算法是一种经典的排序算法,它的时间复杂度很小,常用于大规模数据的排序。C++作为一种高效的编程语言,非常适合使用快速排序算法。下面是一份实现快速排序算法的C++类代码,可以供参考。

#include <vector>
class QuickSort {
public:
  void sort(std::vector<int>& nums) {
    quickSort(nums, 0, nums.size() - 1);
  }
private:
  void quickSort(std::vector<int>& nums, int left, int right) {
    if (left >= right) return;
    int i = left, j = right;
    int pivot = nums[(left + right) / 2];
    while (i <= j) {
      while (nums[i] < pivot) i++;
      while (nums[j] > pivot) j--;
      if (i <= j) {
        std::swap(nums[i], nums[j]);
        i++;
        j--;
      }
    }
    quickSort(nums, left, j);
    quickSort(nums, i, right);
  }
};

这个代码定义了一个QuickSort类,可以通过调用sort方法来进行排序。sort方法中调用了quickSort方法,其中left和right参数分别表示要排序的数组的起始和结束位置。接下来的代码实现了快速排序算法的核心部分,首先找到一个pivot值,然后从左边和右边同时开始遍历数组,将小于pivot的值放到左边,大于pivot的值放到右边。最后递归调用quickSort方法对左边和右边的子数组进行排序。

使用这份代码非常简单,只需要创建一个QuickSort对象并调用sort方法即可:

#include <iostream>
#include "QuickSort.h"
int main() {
  std::vector<int> nums = 8;
  QuickSort quickSort;
  quickSort.sort(nums);
  for (int num : nums)
    std::cout << num << " ";
  
  return 0;
}

运行结果为:1 2 3 5 8 9

总体来说,这份代码是一份比较简单、易懂的快速排序算法实现,只需要使用vector作为输入参数即可。当然,根据实际需求,代码的实现可能会有所不同,读者可以根据自己的需要进行改进和扩展。

  
  

评论区

请求出错了