21xrx.com
2024-11-21 23:03:12 Thursday
登录
文章检索 我的文章 写文章
C++实现快速排序算法的类代码
2023-07-04 23:33:30 深夜i     --     --
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作为输入参数即可。当然,根据实际需求,代码的实现可能会有所不同,读者可以根据自己的需要进行改进和扩展。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复