N 정수의 배열 rr[N]이 주어지면 주어진 배열이 비트 닉인지 여부를 확인하는 작업입니다. 주어진 배열이 bitonic 배열이면 "Yes it a bitonic array"를 인쇄하고, 그렇지 않으면 "No its not bitonic array"를 인쇄합니다.
Bitonic 배열은 배열이 먼저 엄격하게 증가하는 순서로 정렬된 다음 완전히 감소하는 순서일 때입니다.
이 배열과 마찬가지로 arr[] ={1, 2, 3, 4, 2, -1, -5}는 비트 배열입니다. 왜냐하면 4까지는 엄격하게 증가하는 순서이고 4 이후에는 엄격하게 감소하는 순서이기 때문입니다.피>

입력
arr[] = {1, 3, 5, 4, 2, 0} 출력
Yes its a bitonic array
설명
1< 3 < 5 > 4 > 2 >0, so yes it is a bitonic array.
입력
arr[] = {1, 2, 3, 4, 5, 0, -1, -2, 6, -4} 출력
No its not a bitonic array
문제를 해결하기 위해 다음과 같은 접근 방식을 사용합니다.
-
배열의 모든 요소를 반복하고 이전 요소가 현재 요소보다 작은지 확인합니다.
-
이전 요소가 현재 요소보다 작지 않은 경우.
-
이전 요소가 현재보다 큰지 확인하고, 그렇지 않으면 false를 반환하고 종료합니다.
-
배열의 끝에 도달하면 true를 반환합니다.
알고리즘
Start
Step 1→ Declare array to check for bitonicity of an array
int check(int arr[], int size)
declare int i, j
Loop For i = 1 and i <size and i++
IF (arr[i] > arr[i - 1])
Continue
End
IF (arr[i] <= arr[i - 1])
break
End
IF(i == size - 1)
return 1
End
Loop For (j = i + 1 and j < size and j++
IF (arr[j] < arr[j - 1])
Continue
End
IF (arr[j] <= arr[j - 1])
break
End
End
Set i = j
IF (i != size)
return 0
End
return 1
Step 2→ In main()
Declare int arr[] = { -3, 9, 11, 20, 17, 5, 1 }
Declare int size = sizeof(arr) / sizeof(arr[0])
Do (check(arr, size) == 1) ? cout << "Yes its a bitonic array" : cout << "no its not a bitonic array"
Stop 예시
#include <bits/stdc++.h>
using namespace std;
//function to check bitonic or not
int check(int arr[], int size){
int i, j;
for (i = 1; i < size; i++){
if (arr[i] > arr[i - 1])
continue;
if (arr[i] <= arr[i - 1])
break;
}
if (i == size - 1)
return 1;
for (j = i + 1; j < size; j++){
if (arr[j] < arr[j - 1])
continue;
if (arr[j] >= arr[j - 1])
break;
}
i = j;
if (i != size)
return 0;
return 1;
}
int main(){
int arr[] = { -3, 9, 11, 20, 17, 5, 1 };
int size = sizeof(arr) / sizeof(arr[0]);
(check(arr, size) == 1) ? cout << "Yes its a bitonic array" : cout << "no its not a bitonic array";
return 0;
} 출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
Yes its a bitonic array