21xrx.com
2024-11-21 22:51:42 Thursday
登录
文章检索 我的文章 写文章
C++实现快速排序算法
2023-06-23 11:05:08 深夜i     --     --
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)的时间复杂度,比如当输入数组已经有序或接近有序时。因此,在实际应用中需要通过优化算法来避免这种情况的发生。

  
  

评论区

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