21xrx.com
2024-05-20 14:26:06 Monday
登录
文章检索 我的文章 写文章
C++快速排序算法代码
2023-07-05 07:48:45 深夜i     --     --
C++ 快速排序 算法 代码 排序

快速排序是一种非常常见的排序算法,通过分治的思想对数字序列进行排序。它的平均时间复杂度为O(nlogn)。

C++是一种非常流行的编程语言,它为快速排序的实现提供了非常方便的方法。下面是一个C++快速排序算法的代码示例:


void quickSort(vector<int>& nums, int left, int right)

{

  if(left >= right) return;

  int i = left, j = right, pivot = nums[left];

  while(i < j)

  {

    while(i < j && nums[j] >= pivot) --j;

    while(i < j && nums[i] <= pivot) ++i;

    if(i < j) swap(nums[i], nums[j]);

  }

  swap(nums[left], nums[i]);

  quickSort(nums, left, i-1);

  quickSort(nums, i+1, right);

}  

代码中使用了vector容器来存储数字序列,以及递归方法来实现快速排序。left和right参数用于约束排序的数字范围,pivot则是作为排序的基准值。

代码中的while循环用于比较大小,将数字序列中小于基准值的数字放到左边,大于基准值的数字放到右边。最后将基准值和i位置的数字交换,完成一轮排序。

在交换数字时,使用了STL库中的swap函数,可以很方便地交换两个变量的值,提高了代码的可读性。

快速排序的核心思想是分治,将数字序列分解为更小的序列,并对这些序列子集进行排序,直到所有子集都有序。这可以通过递归方法来实现。

以上是一个基本的C++快速排序算法的代码示例,当你需要对数字序列进行排序时,可以尝试使用这种算法。

  
  

评论区

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