21xrx.com
2025-03-25 09:21:34 Tuesday
文章检索 我的文章 写文章
C++实现快速排序算法
2023-06-23 11:05:08 深夜i     9     0
C++ 快速排序算法 实现

快速排序算法是一种基于比较的排序算法,它以递归的方式将一个数组划分为两个子数组,其中一个子数组的元素均小于另一个子数组的元素,并一直递归划分,最终原数组就被排序。

C++实现快速排序算法的步骤如下:

1. 选择一个元素作为基准值(pivot)。

2. 将数组划分为两个子数组,其中一个子数组的元素均小于等于基准值,另一个子数组的元素均大于等于基准值。

3. 递归地对两个子数组进行快速排序。

在C++中,可以使用以下代码实现快速排序算法:

void quickSort(int arr[], int low, int high) {
  if (low < high) {
    int i = low, j = high;
    int pivot = arr[low];
    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, low, i - 1);
    quickSort(arr, i + 1, high);
  }
}

其中,参数arr[]为待排序的数组,low和high为待排序区间的下标。

快速排序算法的时间复杂度为O(nlogn),是一种高效的排序算法。但需要注意的是,快速排序算法可能会退化为O(n^2)的时间复杂度,比如当输入数组已经有序或接近有序时。因此,在实际应用中需要通过优化算法来避免这种情况的发生。

  
  

评论区