内置排序C++

In-built Sorting in C++

本文关键字:C++ 排序 内置      更新时间:2023-10-16

如何在C++中使用向量或内置排序函数,大多数语言都是C?我正在尝试仅为 C 程序对数组进行排序。可以用带有排序实现的简单代码来解释吗?我对C++很陌生。

如果你想在

C中排序,那么你应该使用qsort。

如果你想在C++排序,那么你应该使用 std::sort

std::sort有一个代码示例:

std::array<int, 10> s = {5, 7, 4, 2, 8, 6, 1, 9, 0, 3}; 
// sort using the default operator<
std::sort(s.begin(), s.end());
for (int a : s) {
    std::cout << a << " ";
}   
std::cout << 'n';

输出:

0 1 2 3 4 5 6 7 8 9

下面是一个 qsort 示例,用于对传递的参数进行排序和打印的字符串进行排序:

#include <string.h>
static inline int cmp(const void *a, const void *b){
   return strcmp(*(const char **)a, *(const char **)b);
}
int main(int argc, char *argv[]){
    qsort(++argv, --argc, sizeof(char *), cmp);
    while (argc){
      write(1,argv[0],strlen(argv[0]));
      write(1,(--argc && argv++)?"t":"n",1);
   }
}

对于其他类型,只需在 CMP() 函数中将 strcmp 替换为 a-b,并交换顺序以更改升序和降序。

该方法使用内置的排序算法,并根据输入数组改变其时间复杂度。

 1. #include <bits/stdc++.h>
        using namespace std;
        int main()
        {
            int arr[] = {1, 5, 8, 9, 6, 7, 3, 4, 2, 0};
            int n = sizeof(arr)/sizeof(arr[0]);
           sort(arr, arr+n); //sort(arr, arr+n, greater<int>()); for descending
            cout << "nArray after sorting
 using "
             "default sort is : n";
        for (int i = 0; i < n; ++i)
            cout << arr[i] << " ";
        return 0;
    }