Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで指定されたバイトニックシーケンスのバイトニックポイントを見つける


ビットニックシーケンスがあるとすると、その中にビットニックポイントを見つける必要があります。私たちが知っているように、Bitonicシーケンスは、最初に厳密に増加し、特定のポイントの後に厳密に減少する数列です。この点はバイトニック点です。シーケンスの増加のみまたは減少のみの場合、バイトニックポイントは使用できません。

したがって、入力が[7、8、9、12、10、6、3、2]の場合、出力は12

になります。

これを解決するには、次の手順に従います-

  • 関数binary_search(array、l、r)を定義します
  • l <=rの場合、-
    • m:=(l + r)/ / 2
  • array [m --1]array [m + 1]の場合、-
    • return m
  • array [m]
  • return binary_search(array、m + 1、r)
  • それ以外の場合
    • return binary_search(array、l、m-1)
  • 戻り値-1
  • 理解を深めるために、次の実装を見てみましょう-

    def binary_search(array, l, r):
       if (l <= r):
          m = (l + r) // 2;
          if (array[m - 1] < array[m] and array[m] > array[m + 1]):
             return m;
          if (array[m] < array[m + 1]):
             return binary_search(array, m + 1,r);
          else:
             return binary_search(array, l, m - 1);
       return -1;
    array = [7, 8, 9, 12, 10, 6, 3, 2]
    n = len(array);
    index = binary_search(array, 1, n-2);
    if (index != -1):
       print(array[index]);

    入力

    [7, 8, 9, 12, 10, 6, 3, 2]

    出力

    12

    1. Pythonプログラムで配列の合計を見つける

      この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列の合計を計算するために必要な配列が与えられます。 合計を取得するために各インデックスで配列と要素全体をトラバースするブルートフォースアプローチについては、以下で説明します。合計を取得するための各インデックスについては、以下で説明します。 例 # sum function def sum_(arr,n):    # using built-in function    return(sum(arr)) # main arr = [11,22,33,44,55,66

    2. 配列の合計を見つけるPythonプログラム

      この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '