📜  用于数组排序的 cpp 代码 - C++ (1)

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

用于数组排序的 cpp 代码

在 C++ 中,对于数组排序的代码通常使用 STL 中的 sort() 函数来实现,其使用方法如下:

#include <algorithm> // 包含 STL sort 函数

int main() {
    int arr[] = {4, 6, 1, 3, 8, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    // 调用 sort() 函数对数组进行排序
    std::sort(arr, arr + n);
}

上述代码中,std::sort() 函数的第一个参数为排序开始的位置,第二个参数为排序结束的位置,即左闭右开区间 [begin, end)。可以使用 arr 和 arr+n 来分别表示数组的起始地址和结束地址。

如果需要按照倒序排序,则可以借助另一个 STL 函数 greater<> 来进行排序,使用方法如下:

#include <algorithm> // 包含 STL sort 函数
#include <functional> // 包含 STL greater 函数对象

int main() {
    int arr[] = {4, 6, 1, 3, 8, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    // 使用 greater<int>() 指定倒序排序
    std::sort(arr, arr + n, std::greater<int>());
}

上述代码中,std::greater() 是 STL 中的一个函数对象,用于比较两个元素,返回值为 true 表示第一个参数比第二个参数大,因此可以作为 sort() 函数的第三个参数传入,实现倒序排序。

在使用 sort() 函数时,需要注意的是,被排序的数组必须支持随机访问,因此,其内部实现一般使用快速排序算法,其时间复杂度为 O(nlogn)。

除了 sort() 函数外,STL 中还有许多其他的排序算法和函数,如 stable_sort()、nth_element()、partial_sort() 等,可以根据具体的需求来进行选择。