21xrx.com
2025-03-27 08:02:25 Thursday
文章检索 我的文章 写文章
使用类实现快速排序算法的C++代码
2023-07-05 04:24:11 深夜i     --     --
快速排序 C++

快速排序是一种常用的排序算法之一,它基于分治思想,通过交换数组中的元素来达到排序的目的。使用类实现快速排序算法可以使代码更加模块化、易于理解和维护。下面是一个使用类实现快速排序算法的C++代码示例。

首先,我们需要定义一个名为“QuickSort”的类:

class QuickSort {
public:
  static void sort(int arr[], int len);
private:
  static void quicksort(int arr[], int left, int right);
};

其中,“sort”是我们要调用的排序函数,“quicksort”是真正进行快速排序的函数,它是一个私有函数,不能直接被调用。

接下来是“sort”函数的代码实现:

void QuickSort::sort(int arr[], int len) {
  quicksort(arr, 0, len - 1);
}

“sort”函数先调用“quicksort”函数,并传入数组的起始位置和结束位置。

最后,是“quicksort”函数的代码实现:

void QuickSort::quicksort(int arr[], int left, int right) {
  if (left >= right) {
    return;
  }
  int pivot = arr[left];
  int i = left;
  int j = right;
  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, left, i - 1);
  quicksort(arr, i + 1, right);
}

“quicksort”函数的功能是对数组进行快速排序。它先判断数组的长度是否大于1,如果小于等于1,就直接返回。

接着,它选择数组中的第一个元素作为“基准值”(pivot),并以基准值为参照将数组分为两部分。

然后,将所有小于基准值的元素移到基准值的左边,所有大于基准值的元素移到基准值的右边。

最后,快速排序算法采用分治法,将两个子数组分别进行快速排序,直到整个数组有序为止。

以上就是一个使用类实现快速排序算法的C++代码示例。使用类实现快速排序算法可以使我们的代码更加模块化,同时也能够提高代码的可读性和可维护性。

  
  

评论区