检查一个给定的数组是否按对排序的 C++
我们有一个包含 n 个元素的数组 A。我们必须检查数组是否按对排序。假设数组为 {8, 10, 18, 20, 5, 15}。它是按对排好序的,因为 (8, 10), (18, 20), (5, 15) 已排序。如果数组有奇数个元素,那么最后一个元素将被忽略。
这种方法很简单,通过让 I 从 0 到 n-1,我们将观察第 i 个元素是否小于第 i+1 个元素,如果不是,则返回 false,否则将 I 增加 2。
例如
#include <iostream>
#include <cmath>
using namespace std;
bool isPairwiseSorted(int arr[], int n) {
if(n <= 1)
return true;
for(int i = 0; i<n; i += 2){
if(arr[i] > arr[i + 1])
return false;
}
return true;
}
int main() {
int arr[] = {8, 10, 18, 20, 5, 15};
int n = sizeof(arr)/sizeof(arr[0]);
if(isPairwiseSorted(arr, n)){
cout << "This is pairwise sorted";
} else {
cout << "This is not pairwise sorted";
}
}输出
This is pairwise sorted
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP