21xrx.com
2024-12-27 20:39:25 Friday
登录
文章检索 我的文章 写文章
C++如何判断一个数组是否按升序排列?
2023-07-05 07:43:36 深夜i     --     --
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;

}

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复