在 C++ 中检查给定数组是否按两两排序

c++server side programmingprogramming更新于 2024/9/23 1:58:00

我们有一个包含 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 << "这是成对排序的";
   } else {
      cout << "这不是成对排序的";
   }
}

输出

这是成对排序的

相关文章