21xrx.com
2024-06-03 07:11:14 Monday
登录
文章检索 我的文章 写文章
C++ 快速排序算法代码
2023-07-03 09:38:18 深夜i     --     --
C++ 快速排序 算法 代码

C++中的快速排序算法是一种常见的排序算法,它的速度非常快且适合处理大量数据。在本文中,我们将介绍如何使用C++实现快速排序算法,并提供一份可供参考的代码。

快速排序算法的基本思路是分治法。通过选择一个基准数(通常是数组中间位置的数),将数组分成两个部分,一部分小于基准数,一部分大于基准数。分别对这两个部分进行递归排序,直到所有的子数组都排好序为止。

快速排序的C++实现代码如下:


#include <iostream>

using namespace std;

void quick_sort(int arr[], int left, int right) {

  if (left >= right) return;

  int i = left, j = right, pivot = arr[(left + right) / 2];

  while (i <= j) {

    while (arr[i] < pivot) i++;

    while (arr[j] > pivot) j--;

    if (i <= j) {

      swap(arr[i], arr[j]);

      i++;

      j--;

    }

  }

  quick_sort(arr, left, j);

  quick_sort(arr, i, right);

}

int main() {

  int n, arr[100];

  cin >> n;

  for (int i = 0; i < n; i++) cin >> arr[i];

  quick_sort(arr, 0, n - 1);

  for (int i = 0; i < n; i++) cout << arr[i] << " ";

  cout << endl;

  return 0;

}

在这里,我们先定义了一个函数quick_sort,它接收一个数组、左边界和右边界的下标作为参数。如果左下标大于等于右下标,则结束递归。接下来,我们定义三个变量分别表示左右两个指针和基准数,将数组划分为两部分并进行交换。最后,递归地对左右两个子数组分别进行排序。

在main函数中,我们首先读入数组的元素个数和具体的元素值,然后调用quick_sort函数进行排序。最后,输出排序结果。这段代码包括了快速排序算法的核心部分,可以直接使用或者参考进行修改。

总之,C++中的快速排序算法是一种非常快速且常用的排序算法,它的基本思路是使用分治法来递归地将数组划分为两部分并进行排序。如果您正在学习C++或者需要处理大量数据,快速排序算法是一个不错的选择。

  
  

评论区

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