C++陣列的位元尼克性檢查程式
給定一個包含N個整數的陣列arr[N],任務是檢查給定陣列是否為位元尼克陣列。如果給定陣列是位元尼克陣列,則列印“Yes its a bitonic array”,否則列印“No its not a bitonic array”。
位元尼克陣列是指陣列先嚴格遞增,然後嚴格遞減的陣列。
例如,陣列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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP