【c++自带排序函数】在C++中,标准库提供了多种内置的排序函数,能够高效地对数组或容器中的元素进行排序。这些函数位于`
以下是对C++自带排序函数的总结:
一、常用排序函数介绍
函数名 | 功能说明 | 使用方式 | 时间复杂度 | 是否稳定 |
`sort()` | 对数组或容器进行快速排序 | `sort(arr, arr + n);` | O(n log n) | 否 |
`stable_sort()` | 对数组或容器进行稳定排序 | `stable_sort(arr, arr + n);` | O(n log n) | 是 |
`qsort()` | C语言风格的快速排序(C++兼容) | `qsort(arr, n, sizeof(int), compare);` | O(n log n) | 否 |
`sort()` (for STL容器) | 对vector等STL容器排序 | `std::sort(vec.begin(), vec.end());` | O(n log n) | 否 |
二、函数使用示例
1. `sort()` 示例
```cpp
include
include
using namespace std;
int main() {
int arr[] = {5, 2, 9, 1, 5, 6};
int n = sizeof(arr)/sizeof(arr[0]);
sort(arr, arr + n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
2. `stable_sort()` 示例
```cpp
include
include
using namespace std;
int main() {
int arr[] = {5, 2, 9, 1, 5, 6};
int n = sizeof(arr)/sizeof(arr[0]);
stable_sort(arr, arr + n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
3. `qsort()` 示例(C语言风格)
```cpp
include
include
using namespace std;
int compare(const void a, const void b) {
return ((int)a - (int)b);
}
int main() {
int arr[] = {5, 2, 9, 1, 5, 6};
int n = sizeof(arr)/sizeof(arr[0]);
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
三、注意事项
- `sort()` 是最常用的排序函数,适用于大多数场景。
- 如果需要保持相同值元素的相对顺序,应使用 `stable_sort()`。
- `qsort()` 虽然可用,但不如 `sort()` 灵活,推荐优先使用 `sort()` 或 STL 中的排序方法。
- 在处理 STL 容器时,如 `vector`、`list` 等,应使用 `std::sort()` 或 `std::stable_sort()`。
四、总结
C++ 提供了丰富的排序函数,开发者可以根据实际需求选择合适的排序方式。`sort()` 是最通用的工具,而 `stable_sort()` 在需要保持稳定性时更为合适。理解这些函数的用法和性能特点,有助于编写更高效、可维护的代码。