21xrx.com
2024-05-20 12:12:17 Monday
登录
文章检索 我的文章 写文章
C++快速排序sort实现与使用
2023-07-06 11:25:17 深夜i     --     --
C++ 快速排序 sort实现 使用 算法

快速排序是一种常用的排序算法,也是C++中的STL库中的sort函数所采用的算法。其基本思想是将一个序列分成两个子序列,一部分比另一部分小,然后利用递归算法重复这个过程直到排序完成。下面将介绍C++快速排序sort实现与使用方法。

1. sort函数介绍

sort函数是C++ STL库中的一个函数,其定义在头文件 #include 中,函数原型为:sort(start, end, cmp),其中start和end为排序区间的首尾迭代器,cmp为比较函数,用于指定排序规则。默认的排序规则是升序排列。

2. 比较函数

在sort函数的使用中,需要指定一个比较函数用于指定排序规则。比较函数的形式如下:

bool cmp(const T& a, const T& b);

其中T为被比较的元素类型,a和b为两个被比较的元素。比较函数返回值为bool类型,为true时a排在b的后面,为false时a排在b的前面。例如,当需要将数组中的元素按照降序排列时,可以使用如下比较函数:

bool cmp(int a, int b)

  return a > b;

3. sort函数使用范例

以下给出一个简单的示例,使用sort函数将一个数组排序。

#include

#include

using namespace std;

int main()

{

  int arr[5] = 2;

  sort(arr, arr + 5);

  for (int i = 0; i < 5; i++)

  {

    cout << arr[i] << " ";

  }

  cout << endl;

  return 0;

}

运行结果:

1 2 3 4 5

其中sort(arr, arr + 5)表示将数组arr从索引0到索引4(即数组长度-1)排序。也可以通过自定义比较函数指定排序规则:

#include

#include

using namespace std;

bool cmp(int a, int b)

  return a > b;

int main()

{

  int arr[5] = 1;

  sort(arr, arr + 5, cmp);

  for (int i = 0; i < 5; i++)

  {

    cout << arr[i] << " ";

  }

  cout << endl;

  return 0;

}

运行结果:

5 4 3 2 1

4. 总结

C++快速排序sort函数是一种常用的排序算法,在实际开发中非常有用。只要事先准备好比较函数,使用sort函数可以轻松地完成排序操作。

  
  

评论区

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