任意のサイズの arr[] であると仮定して、正と負の数値を含む整数型の配列があります。タスクは、C STL の組み込みソート関数と再帰を使用して配列のすべての要素がソートされるように配列を再配置することです。 技術的なコーディングと結果の印刷。
Input − int arr[] = {4, 2, -1, -1, 6, のさまざまな入出力シナリオを見てみましょう。 -3, 0}
出力 - 一定の追加スペースを使用して、正の数値と負の数値を並べ替えます: -3 -1 -1 0 6 2 4。
説明 - 正と負の要素を含むサイズ 7 の整数配列が与えられます。ここで、配列内のすべての要素が一定の追加スペース内でソートされるように配列を再配置し、最終結果は -3 -1 -1 0 2 4 6 になります。
入力 − int arr[] = {-9, -10, 2, 3, 10, 5, 8, 4}
出力 - 一定の追加スペースを使用して、正の数と負の数を並べ替えます: -9 -10 2 3 10 5 8 4
説明 - 正の数と負の数を含む、サイズ 8 の整数配列が与えられます。マイナス要素。ここで、配列内のすべての要素が一定の追加スペース内でソートされるように配列を再配置します。最終結果は -9 -10 2 3 10 5 8 4 になります。
整数型要素の配列を入力し、配列のサイズを計算します。
再配置操作を実行する前に、FOR ループを使用して配列を出力します。
配列と配列サイズをパラメーターとして渡して、関数 Rearrangement(arr, size) を呼び出します。
関数内部 Rearrangement(arr, size)
整数型変数 i を 0 に、 j をサイズ -1 に設定します。
while(true) で開始します。 while 内で別のループを開始し、arr[i] が 0 未満で i が size 未満の場合に i をインクリメントします。
arr[j] が 0 より大きく、j が 0 より大きいときに開始し、j をデクリメントします。
i が j より小さいかどうかを確認し、temp を arr[i] に、arr[i] を arr[j] に、arr[j] を temp に設定します。
それ以外の場合は、ループから抜け出します。
#include<iostream> using namespace std; void Rearrangement(int arr[], int size){ int i = 0; int j = size - 1; while(true){ while(arr[i] < 0 && i < size){ i++; } while(arr[j] > 0 && j >= 0){ j--; } if (i < j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } else{ break; } } } int main(){ int arr[] = {4, 2, -1, -1, 6, -3, 0}; int size = sizeof(arr)/sizeof(arr[0]); //calling the function to rearrange the array Rearrangement(arr, size); //print the array after rearranging the values cout<<"Rearrangement of positive and negative numbers with constant extra space is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }
Rearrangement of positive and negative numbers with constant extra space is: -3 -1 -1 0 6 2 4
以上がC++ では、固定の追加スペースを使用して正の数値と負の数値を並べ替えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。