21xrx.com
2024-05-20 13:31:47 Monday
登录
文章检索 我的文章 写文章
C++快速排序代码实现:输出每次排序后的结果
2023-07-05 17:54:24 深夜i     --     --
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循环用于输出每次排序后的结果。这样,使用以上代码可以输出每次排序后的结果。

  
  

评论区

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