内置排序C++
In-built Sorting in C++
如何在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;
}
相关文章:
- 二叉排序树无法编译
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- C++选择排序算法中的逻辑错误
- 使用C++程序合并排序没有得到正确的输出
- 计算排序向量的向量中唯一值的计数
- 排序算法c++
- 使用2个键的cpp-stl::优先级队列排序不正确
- 将结构向量排序为子组
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 如何对点云数据进行排序
- 对字符串进行排序时,在c++中处理sort()
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- 下面是排序算法O(n)吗
- std::sort()函数无法对向量的一部分进行排序
- shell排序中的交换和比较
- clang格式:禁用排序包含
- 显示错误输出的简单数组排序程序
- 为什么我的排序算法会更改数组值
- 试图在c++中对数字列表进行排序
- 如何在C++中对数组进行冒泡排序