21xrx.com
2025-07-03 23:02:45 Thursday
登录
文章检索 我的文章 写文章
C++快速排序代码实现:输出每次排序后的结果
2023-07-05 17:54:24 深夜i     26     0
C++ 快速排序 代码 实现 输出结果

快速排序是一种常用的排序算法,在C++语言中的实现也非常容易。下面我们将介绍如何使用C++语言实现快速排序,并输出每次排序后的结果。

快速排序是基于分治思想的,它将一个问题分成两个子问题,并对这两个子问题分别求解,最后将子问题的结果合并起来。在快速排序中,我们首先选择一个元素作为pivot,然后将其他元素分成两个部分:小于pivot的元素和大于pivot的元素。然后分别对这两个部分进行递归排序,最后将大于pivot的元素和小于pivot的元素合并起来。

下面是一个用C++实现的快速排序代码:

#include <iostream>
using namespace std;
void Swap(int& a, int& b)
  int temp = a;
  a = b;
  b = temp;
void QuickSort(int* a, int start, int end) {
  if (start >= end) return;
  int i = start, j = end;
  int pivot = a[start];
  while (i < j) {
    while (i < j && a[j] >= pivot) j--;
    while (i < j && a[i] <= pivot) i++;
    if (i < j) Swap(a[i], a[j]);
  }
  a[start] = a[i];
  a[i] = pivot;
  QuickSort(a, start, i - 1);
  QuickSort(a, i + 1, end);
  for (int k = start; k <= end; k++) {
    cout << a[k] << " ";
  }
  cout << endl;
}
int main() {
  int a[] = 4;
  int n = sizeof(a) / sizeof(int);
  QuickSort(a, 0, n - 1);
  return 0;
}

在上面的代码中,Swap函数用于交换数组中的两个元素,QuickSort函数实现了快速排序算法。我们通过i和j两个指针来找出小于pivot的元素和大于pivot的元素,并用Swap函数将它们交换。最后,将pivot放在正确的位置上,并分别对左右两个子数组进行递归排序。

最后,我们在QuickSort函数中添加了一个for循环用于输出每次排序后的结果。这样,使用以上代码可以输出每次排序后的结果。

  
  

评论区