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

C++で配列内のパーティションポイントを検索します


このチュートリアルでは、パーティションポイントに残されたすべての要素が小さく、パーティションポイントに右にあるすべての要素が大きい配列内のパーティションポイントを見つけます。

問題を解決するための手順を見てみましょう。

  • アレイを初期化します。

  • アレイを繰り返し処理します。

    • 0からIまで繰り返し、各値が現在の値よりも小さいかどうかを確認します。

    • Iからnまで繰り返し、各値が現在の値よりも大きいかどうかを確認します。

    • ボットが条件を満たした場合は、値を返します。

  • パーティションポイントを印刷します。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
int findPartitionElement(int arr[], int n) {
   for (int i = 0; i < n; i++) {
      int is_found = true;
      for (int j = 0; j < i; j++) {
         if (arr[j] >= arr[i]) {
            is_found = false;
            break;
         }
      }
      for (int j = i + 1; j < n; j++) {
         if (arr[j] <= arr[i]) {
            is_found = false;
            break;
         }
      }
      if (is_found) {
         return arr[i];
      }
   }
   return -1;
}
int main() {
   int arr[] = { 4, 3, 5, 6, 7 };
   cout << findPartitionElement(arr, 5) << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

5

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C ++の特定の配列で固定小数点(インデックスに等しい値)を検索します

    ここでは、特定の配列で固定小数点を見つける方法を説明します。配列では、値がそのインデックスと同じである場合、1つの要素は固定小数点として示されます。このプログラムは、存在する場合は値を返し、そうでない場合は-1を返します。配列は負の数も保持できます。そして、データ要素が並べ替えられます。 ここでは、二分探索アプローチを使用して、O(log n)時間でこの問題を解決します。最初に、中間要素が固定小数点であるかどうかを確認し、はいの場合はそれを返します。そうでない場合は、中間要素のインデックスがインデックスの値よりも大きい場合、インデックスが大きい場合の2つの状況があります。 、次に、右側で固定

  2. ポイントがC++の円の内側にあるかどうかを確認します

    1つの円(中心座標と半径)が指定され、別の点も指定されているとします。ポイントが円の内側にあるかどうかを確認する必要があります。それを解決するには、円の中心から与えられた点の距離を見つける必要があります。その距離が半径以下の場合、それは円の内側にあり、そうでない場合はそうではありません。 例 #include <iostream> #include <cmath> using namespace std; bool isInsideCircle(int cx, int cy, int r, int x, int y) {    int dist =