21xrx.com
2024-12-22 22:38:07 Sunday
登录
文章检索 我的文章 写文章
C++实现快速排序算法代码
2023-07-05 04:04:45 深夜i     --     --
C++ 快速排序 算法 代码 实现

快速排序算法是一种高度有效的排序算法,被广泛应用于许多实际场景中。快速排序的思路是将待排序的数据按照一个基准值划分成左右两个子序列,左子序列小于等于基准值,右子序列大于等于基准值,然后对左右子序列分别进行递归排序,直到所有子序列长度为1或0为止。最终将各子序列合并起来,就得到了排好序的序列。

下面是使用C++语言实现快速排序算法的代码:


#include <iostream>

using namespace std;

void quickSort(int arr[], int l, int r) {

  if (l < r) {

    int i = l, j = r, pivot = arr[l];

    while (i < j) {

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

      if (i < j) arr[i++] = arr[j];

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

      if (i < j) arr[j--] = arr[i];

    }

    arr[i] = pivot;

    quickSort(arr, l, i - 1);

    quickSort(arr, i + 1, r);

  }

}

// 测试代码

int main() {

  int arr[] = {6, 5, 3, 1, 8, 7, 2, 4};

  int n = sizeof(arr) / sizeof(arr[0]);

  quickSort(arr, 0, n - 1);

  for (int i = 0; i < n; i++) {

    cout << arr[i] << " ";

  }

  cout << endl;

  return 0;

}

上述代码中,函数quickSort()是快速排序的核心实现。该函数通过设定左右指针,以及基准值pivot,对待排序序列进行划分。接着递归调用自身,对左右子序列进行排序,直至划分出的各子序列长度为1或0为止。最后将排序结束后的各子序列进行合并,就得到了排好序的序列。

在测试代码中,我们使用一个例子来验证该排序算法的正确性。最终输出的结果为1 2 3 4 5 6 7 8,该结果符合快速排序的排序规则,即升序排列。

综上所述,C++实现快速排序算法的代码非常简单,但其效率很高。当需要对大量数据进行排序时,快速排序算法将是一种非常适合的选择。

  
  

评论区

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