21xrx.com
2024-05-20 12:13:15 Monday
登录
文章检索 我的文章 写文章
C++快速排序模板
2023-07-07 22:16:00 深夜i     --     --
C++ 快速排序 模板

快速排序是一种常用的排序算法,它通过不断地将待排序数组划分成两部分,并将所有小于某一值的元素都放在该值的左侧,将所有大于该值的元素都放在该值的右侧,从而实现对数组的排序。C++快速排序模板可以帮助程序员快速实现快速排序算法,大大提高开发效率。

C++快速排序模板的代码如下:


void quickSort(vector<int>& nums, int left, int right) {

  if (left < right) {

    int i = left, j = right, pivot = nums[left];

    while (i < j) {

      while (i < j && nums[j] >= pivot)

        j--;

      

      nums[i] = nums[j];

      while (i < j && nums[i] <= pivot) {

        i++;

      }

      nums[j] = nums[i];

    }

    nums[i] = pivot;

    quickSort(nums, left, i - 1);

    quickSort(nums, i + 1, right);

  }

}

这个快速排序模板的参数包括待排序数组nums、数组左边界left和右边界right。在函数内部,首先判断左边界是否小于右边界,如果是,则取数组中的第一个元素作为枢轴值pivot,然后使用指针i和j分别指向数组的左右两端。接下来,在while循环中,指针j从右向左扫描数组,找到第一个小于pivot值的元素,指针i从左向右扫描数组,找到第一个大于pivot值的元素,然后将它们交换。继续扫描,直到i和j相遇。

最后,将枢轴值放回数组中,并递归调用快速排序函数对左右两个子数组进行排序,直到数组有序。

使用C++快速排序模板的步骤非常简单。首先,需要在代码中引用头文件`#include `和`#include `。然后,可以创建一个int型数组,并将待排序元素存入其中。最后,调用`quickSort()`函数对数组进行排序,即可实现快速排序的功能。

总之,C++快速排序模板是一种非常实用的工具,它可以让程序员快速地实现快速排序算法,提高开发效率,同时也有助于加深对算法思想的理解和掌握。

  
  

评论区

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