用C++将一个数组排序
时间: 2024-02-22 18:56:39 浏览: 70
可以使用C++ STL中的sort函数来对数组进行排序,具体代码如下:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = {5, 2, 8, 4, 1, 9, 3, 6, 7};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
这里使用sort函数对数组进行排序,sort函数需要传入两个参数:数组的起始地址和结束地址,这里使用`arr`和`arr+n`,其中`n`为数组的大小。最后使用for循环打印排序后的数组即可。
相关问题
c++N个元素数组排序
你可以使用C++中的标准库函数 `sort()` 来排序 N 个元素的数组。以下是一个示例代码:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int arr[] = {3, 5, 1, 6, 2, 8};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n);
for(int i = 0; i < n; i++)
cout << arr[i] << " ";
return 0;
}
```
输出结果为:
```
1 2 3 5 6 8
```
在此示例中,我们使用 `sort()` 函数对整数数组进行排序。函数的第一个参数为数组的起始位置,第二个参数为数组的结束位置(不包括该位置)。
可以看到,排序后的数组按升序排列。你也可以使用自定义的比较函数来对数组进行排序,例如按照降序排列:
```c++
bool cmp(int a, int b)
{
return a > b;
}
int main()
{
int arr[] = {3, 5, 1, 6, 2, 8};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, cmp);
for(int i = 0; i < n; i++)
cout << arr[i] << " ";
return 0;
}
```
输出结果为:
```
8 6 5 3 2 1
```
c++sort对部分数组排序
C++的`std::sort`函数可以对整个数组进行排序,但如果你只需要对数组的一部分进行排序,可以通过指定排序起始位置和结束位置来实现。
例如,如果你有一个数组`arr`,其中前5个元素已经有序,现在你只需要对后面的元素进行排序,可以这样调用`std::sort`:
```c++
std::sort(arr + 5, arr + arr_size);
```
其中,`arr_size`是数组的大小。这样会对`arr`数组的第6个元素到最后一个元素进行排序。
如果你只需要对部分元素进行排序,可以通过指定起始位置和长度来实现。例如,如果你需要对数组`arr`的第3个元素到第7个元素进行排序,可以这样调用`std::sort`:
```c++
std::sort(arr + 2, arr + 7);
```
这样会对`arr`数组的第3个元素到第7个元素进行排序。
阅读全文