用 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

結論

如果你對本教程有任何疑問,可以在評論區提出。

更新於: 01-2 月-2021

363 views

職業生涯起飛

完成本課程即可獲得認證

開始
廣告
© . All rights reserved.