21xrx.com
2025-03-20 17:38:58 Thursday
文章检索 我的文章 写文章
C++如何判断一个数组是否按升序排列?
2023-07-05 07:43:36 深夜i     36     0
C++ 数组 升序排列 判断

在C++中,判断一个数组是否按升序排列有多种方法。下面将介绍两种常见的方法。

方法一:遍历数组进行比较

该方法是遍历整个数组,将相邻两个数进行比较,如果前一个数大于后一个数,则该数组不是按升序排列。

示例代码如下:

bool isAscending(int arr[], int size) {
  for(int i=0; i<size-1; i++) {
    if(arr[i] > arr[i+1])
      return false;
    
  }
  return true;
}
// 测试
int main() {
  int arr[] = 6;
  int size = sizeof(arr)/sizeof(int);
  if(isAscending(arr, size))
    cout << "该数组按升序排列" << endl;
   else
    cout << "该数组不是按升序排列" << endl;
  
  return 0;
}

方法二:使用STL库的sort()函数

该方法是使用C++ STL库中的sort()函数对数组进行排序,然后比较排序前后的数组是否相同,如果相同则该数组是按升序排列。

示例代码如下:

bool isAscending(int arr[], int size) {
  int copyArr[size];
  copy(arr, arr+size, copyArr);//复制原数组
  sort(copyArr, copyArr+size);//排序复制数组
  for(int i=0; i<size; i++) {
    if(arr[i] != copyArr[i])
      return false;
    
  }
  return true;
}
// 测试
int main() {
  int arr[] = 8;
  int size = sizeof(arr)/sizeof(int);
  if(isAscending(arr, size))
    cout << "该数组按升序排列" << endl;
   else
    cout << "该数组不是按升序排列" << endl;
  
  return 0;
}

以上是两种常见的判断数组按升序排列的方法,根据具体情况选择合适的方法即可。

  
  

评论区