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