C++ 程序计算数组的双调性

c++server side programmingprogramming更新于 2024/10/10 19:42:00

给定一个整数数组,任务是使用函数计算给定数组的双调性。

数组的双调性是 −

  • 初始化为 0
  • 当下一个元素大于前一个值时增加到 1
  • 当下一个元素小于前一个值时减少到 1

示例

输入:arr[] = { 1,4,3,5,2,9,10,11}
输出:数组的双调性是:3

解释 −

  • 初始化双调性计算变量,假设 temp 为 0。
  • 从数组的第一个元素 1 开始。现在比较 arr[i] 和 arr[i-1],即比较 4 和 1,这里 4 大于 1,因此将 temp 增加 1。类似地比较 4 和 3,因为 3 小于 4,所以减少 temp 的值。
  • 打印 temp 的最终值,即 3

以下程序中使用的方法如下

  • 遍历数组的所有元素,假设 arr[n],其中 n 是数组的大小
  • 如果 arr[i] > arr[i-1],则 bitonicity = bitonicity + 1
  • 如果 arr[i] < arr[i-1],则 bitonicity = bitonicity – 1
  • 如果 arr[i] = arr[i-1],则 bitonicity = bitonicity (不变)

算法

开始
步骤 1-> 声明函数来计算数组的双调性
   int cal_bitonicity(int arr[], int n)
      set int temp = 0
      循环 For int i = 1 and i < n and i++
         如果 (arr[i] > arr[i - 1])
         增加 temp++
      结束
      Else IF (arr[i] < arr[i - 1])
         减少 temp—
      结束
   返回 temp
步骤 2-> 在 main() 中
   声明 int arr[] = { 1,4,3,5,2,9,10,11}
   设置 int n = sizeof(arr) / sizeof(arr[0])
   调用 cal_bitonicity(arr, n)
停止

示例

#include <iostream>
using namespace std;
// 计算双调性
int cal_bitonicity(int arr[], int n) {
   int temp = 0;
   for (int i = 1; i < n; i++) {
      if (arr[i] > arr[i - 1])
         temp++;
      else if (arr[i] < arr[i - 1])
         temp--;
   }
   return temp;
}
int main() {
   int arr[] = { 1,4,3,5,2,9,10,11};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"数组的双调性为:<<cal_bitonicity(arr, n);
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出

数组的双调性为:3

相关文章