配列を取得しました。この配列を次の順序で配置する必要があります: 最初の要素が最小の要素、2 番目の要素が最大の要素、そして 3 番目の要素である必要があります2 番目に小さい要素、4 番目の要素が 2 番目に大きい要素、というようになります。 例-
Input : arr[ ] = { 13, 34, 30, 56, 78, 3 } Output : { 3, 78, 13, 56, 34, 30 } Explanation : array is rearranged in the order { 1st min, 1st max, 2nd min, 2nd max, 3rd min, 3rd max } Input : arr [ ] = { 2, 4, 6, 8, 11, 13, 15 } Output : { 2, 15, 4, 13, 6, 11, 8 }
2 つの変数「 x##」を使用できます。 #" と "y" は、それらが指す位置を最大要素と最小要素に解決しますが、この配列の場合は並べ替える必要があるため、最初に配列を並べ替えてから、次の配列を作成する必要があります。同じサイズ 並べ替えられた配列を格納するための新しい空の配列。次に、配列を反復処理し、反復された要素のインデックスが偶数である場合は、空の配列に arr[ x ] 要素を追加し、 x を 1 ずつインクリメントします。要素のインデックスが奇数の場合は、空の配列に arr[ y ] 要素を追加し、 y を 1 ずつ減分します。これをyがxより小さくなるまで繰り返します。
例#include <bits/stdc++.h> using namespace std; int main () { int arr[] = { 2, 4, 6, 8, 11, 13, 15 }; int n = sizeof (arr) / sizeof (arr[0]); // creating a new array to store the rearranged array. int reordered_array[n]; // sorting the original array sort(arr, arr + n); // pointing variables to minimum and maximum element index. int x = 0, y = n - 1; int i = 0; // iterating over the array until max is less than or equals to max. while (x <= y) { // if i is even then store max index element if (i % 2 == 0) { reordered_array[i] = arr[x]; x++; } // store min index element else { reordered_array[i] = arr[y]; y--; } i++; } // printing the reordered array. for (int i = 0; i < n; i++) cout << reordered_array[i] << " "; // or we can update the original array // for (int i = 0; i < n; i++) // arr[i] = reordered_array[i]; return 0; }
2 15 4 13 6 11 8
以上がC++ を使用して配列の順序を並べ替えます - 最小値、最大値、2 番目の最小値、2 番目の最大値の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。