21xrx.com
2024-05-20 11:47:30 Monday
登录
文章检索 我的文章 写文章
使用类实现快速排序算法的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++代码示例。使用类实现快速排序算法可以使我们的代码更加模块化,同时也能够提高代码的可读性和可维护性。

  
  

评论区

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