Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ คำนวณ Bitonicity ของอาร์เรย์


บทนำ

Bitonicity ของอาร์เรย์ คือค่าที่เริ่มต้นที่ 0 แล้ว:

  • เพิ่ม 1 เมื่อสมาชิกถัดไป > สมาชิกก่อนหน้า
  • ลด 1 เมื่อสมาชิกถัดไป < สมาชิกก่อนหน้า
  • ไม่เปลี่ยนเมื่อเท่ากัน

ตัวอย่าง

arr[] = {1, 4, 3, 5, 2, 9, 10, 11} → Bitonicity = 3

แนวคิด

วนลูป i=1 ถึง n-1:

  • arr[i] > arr[i-1] → bitonicity++
  • arr[i] < arr[i-1] → bitonicity--

ตัวอย่างโค้ด C++

#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 << "Bitonicity of an array is: " << cal_bitonicity(arr, n);
    return 0;
}

ผลลัพธ์

Bitonicity of an array is: 3