c++判断一个数组是否从小到大排序
时间: 2023-03-20 18:01:05 浏览: 162
要判断一个数组是否从小到大排序,需要遍历数组中的每个元素并检查它是否比前一个元素大。如果数组中的每个元素都比前一个元素大,则该数组是按从小到大的顺序排序的。
以下是一个示例代码,可以实现此功能:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int i, sorted = 1;
for (i = 1; i < n; i++) {
if (arr[i] < arr[i-1]) {
sorted = 0;
break;
}
}
if (sorted) {
printf("The array is sorted in ascending order.");
} else {
printf("The array is not sorted in ascending order.");
}
return 0;
}
```
在上面的代码中,我们首先定义了一个整数数组`arr`和数组的大小`n`。然后,我们遍历数组中的每个元素,从索引1开始,通过比较当前元素和前一个元素的大小来检查数组是否已按从小到大的顺序排序。如果某个元素小于前一个元素,我们将`sorted`标记为0,表示该数组未按从小到大的顺序排序。最后,我们检查`sorted`的值,以确定数组是否已排序,并打印相应的消息。
相关问题
c++字符串数组从小到大排序
可以使用标准库中的`sort`函数来对字符串数组进行排序。代码如下:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
const int N = 5;
string arr[N] = {"apple", "banana", "orange", "pear", "grape"};
sort(arr, arr + N);
for (int i = 0; i < N; i++)
cout << arr[i] << " ";
cout << endl;
return 0;
}
```
输出结果为:
```
apple banana grape orange pear
```
其中,`sort(arr, arr + N)`表示对数组`arr`中前`N`个元素进行排序。由于字符串类型已经定义了相应的比较运算符,所以可以直接使用`sort`函数对字符串进行排序。
C++整型数组从小到大排序
好的,下面是一种常见的 C++ 整型数组从小到大排序的方法,使用了快速排序算法:
```C++
void quick_sort(int arr[], int left, int right) {
if (left >= right) return;
int pivot = arr[left];
int i = left, j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) j--;
while (i < j && arr[i] <= pivot) i++;
if (i < j) swap(arr[i], arr[j]);
}
swap(arr[left], arr[i]);
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
void sort_array(int arr[], int size) {
quick_sort(arr, 0, size - 1);
}
```
其中,我们使用了快速排序算法,它的基本思想是:选择一个基准元素,将数组分为两部分,左边部分都小于等于基准元素,右边部分都大于等于基准元素,然后递归对左右两部分进行排序。
在代码中,我们使用了递归的方式实现快速排序算法,首先选择数组的第一个元素作为基准元素,然后设置两个指针 i 和 j,分别指向数组的左右两端。接着,从右往左扫描数组,找到第一个小于基准元素的元素,然后从左往右扫描数组,找到第一个大于基准元素的元素,交换它们的位置。重复执行这个过程,直到 i 和 j 相遇,最后将基准元素与 i 所指向的位置交换,这样基准元素就被放置在了正确的位置上。然后递归对左右两部分进行排序,直到只剩下一个元素,排序完成。
阅读全文