Bitonicity đo độ "dao động" của mảng: bắt đầu từ 0, so sánh từng cặp liền kề:
- arr[i] > arr[i-1] → +1
- arr[i] < arr[i-1] → -1
- arr[i] = arr[i-1] → 0
Ví dụ
Mảng: {1, 2, 4, 5, 4, 3}
1→2: +1, 2→4: +1, 4→5: +1, 5→4: -1, 4→3: -1 → Tổng = 1
Chương trình
#include <iostream>
using namespace std;
int main() {
int arr[] = {1, 2, 4, 5, 4, 3};
int n = sizeof(arr)/sizeof(arr[0]);
int bitonicity = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[i-1]) bitonicity++;
else if (arr[i] < arr[i-1]) bitonicity--;
}
cout << "Bitonicity = " << bitonicity;
return 0;
}
Kết quả
Bitonicity = 1