Bitonicity ของอาร์เรย์นิยามจากการเปรียบเทียบสมาชิกที่อยู่ติดกัน:
- เริ่มต้น Bitonicity = 0
- ถ้า arr[i] > arr[i-1] → Bitonicity++
- ถ้า arr[i] < arr[i-1] → Bitonicity--
- ถ้า arr[i] == arr[i-1] → ไม่เปลี่ยน
ตัวอย่าง
arr = {1, 2, 4, 5, 4, 3}
1→2: +1, 2→4: +1, 4→5: +1, 5→4: -1, 4→3: -1
Bitonicity = 1
โค้ดตัวอย่าง
#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;
}
ผลลัพธ์
Bitonicity = 1