檢查一個給定的陣列是否按對排序的 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

更新於: 21-Oct-2019

108 檢視次數

開啟你的 職業生涯

學完課程,獲得認證

立即開始
廣告