📌  相关文章
📜  c++ 中的 sort(arr arr+n)(1)

📅  最后修改于: 2023-12-03 15:13:58.528000             🧑  作者: Mango

c++中的sort(arr, arr+n)

简介

sort是c++中的一个非常有用的算法,可以用于快速排序数组。使用sort需要包含头文件。

sort的用法可以简化为sort(arr, arr+n),其中arr是待排序数组的名称,n是arr中元素的个数。

实现

sort使用的排序算法是快速排序,也就是说在O(nlogn)的时间复杂度内可以完成对数组的排序。

排序主要是基于<运算符,如果不使用默认排序或者是想自定义排序方式,可以传入comparator函数作为第三个参数。comparator函数需要返回一个bool值,它根据两个元素之间的关系返回true或false。如果当前两个元素之间的关系是按照我们需要的排序方式排列的,那么comparator应该返回true,否则应该返回false。

下面是一个例子,它演示了如何使用sort将一个整数数组按照从大到小的方式进行排序。

#include <algorithm>
#include <iostream>
using namespace std;

bool comparator(int a, int b) {
  return a > b;
}

int main() {
  int arr[] = {5, 2, 6, 1, 3, 8, 9};
  int n = sizeof(arr)/sizeof(int);

  sort(arr, arr+n, comparator);

  for(int i=0; i<n; i++) {
    cout << arr[i] << " ";
  }
  return 0;
}

输出将会是:

9 8 6 5 3 2 1 
总结

sort是c++中的一个非常实用的算法,可以快速地对数组进行排序。通过在sort中传入comparator函数,我们可以根据自己的需要定制排序方式。