C++ で 'arr' が 'j' の場合、'arr' が 'i' になるように配列を再配置します。
この状況におけるさまざまな入出力シナリオを見てみましょう - h2>
Input- int arr[] = {3, 4, 1, 2, 0}
出力- ソート前の配列: 3 4 1 2 0 arr[j] が i になるように配列を並べ替えます。arr[i] が j の場合、次のようになります: 4 2 3 0 1
説明- サイズ配列 6 の整数を取得します。および 6 未満の値を持つ配列内のすべての要素。ここで、配列を再配置します。つまり、arr[1] は 4、arr[4] = 1、arr[2] は 1、arr[1] = 2、arr[3] は 2. arr[2] = 3; arr[4] は 0、arr[0]=4。したがって、最終的な配列は 4 2 3 0 1 になります。
入力 t- int arr[] = {2, 0, 1, 3}
出力- 配置前の配列: 2 0 1 3 arr[i] が j の場合、arr[j] が i になるように配列を並べ替えます。 1 2 0 3
説明- サイズ 6 の整数の配列を取得し、配列内のすべての要素の値が 6 未満です。ここで、配列を再配置します。つまり、arr[0] は 2、arr[2] = 0、arr[1] は 0、arr[0] = 1、arr[2] は 1、arr[1] = 2; arr[3] は 3、arr[3] = 3。したがって、最終的な配列は 1 2 0 3 になります。
次のプログラムで使用するメソッドは次のとおりです。
整数型要素の配列を入力し、配列のサイズを計算します。
配列を配置する前に配列を出力し、Rearrangement(arr, size)関数を呼び出します。
-
関数Rearrangement(arr, size)
- #配列 arr[] と同じサイズの整数型の値の配列 ptr[] を作成します。
- i が size 未満になるまで、i から 0 まで FOR のループを開始します。ループ内で、ptr[arr[i]] を i に設定します。
- i が size 未満になるまで、i から 0 まで FOR のループを開始します。ループ内で、arr[i] を ptr[i] に設定します。
- #再配置された配列を出力します。
#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int arr[], int size){
int ptr[size];
for(int i = 0; i < size; i++){
ptr[arr[i]] = i;
}
for(int i = 0; i < size; i++){
arr[i] = ptr[i];
}
}
int main(){
//input an array
int arr[] = {3, 4, 1, 2, 0};
int size = sizeof(arr) / sizeof(arr[0]);
//print the original Array
cout<<"Array before Arrangement: ";
for (int i = 0; i < size; i++){
cout << arr[i] << " ";
}
//calling the function to rearrange the array
Rearrangement(arr, size);
//print the array after rearranging the values
cout<<"\nRearrangement of an array such that ‘arr[j]’ becomes ‘i’ if ‘arr[i]’ is ‘j’ is: ";
for(int i = 0; i < size; i++){
cout<< arr[i] << " ";
}
return 0;
}
ログイン後にコピー
出力上記のコードを実行すると、次の出力が生成されます#include <bits/stdc++.h> using namespace std; void Rearrangement(int arr[], int size){ int ptr[size]; for(int i = 0; i < size; i++){ ptr[arr[i]] = i; } for(int i = 0; i < size; i++){ arr[i] = ptr[i]; } } int main(){ //input an array int arr[] = {3, 4, 1, 2, 0}; int size = sizeof(arr) / sizeof(arr[0]); //print the original Array cout<<"Array before Arrangement: "; for (int i = 0; i < size; i++){ cout << arr[i] << " "; } //calling the function to rearrange the array Rearrangement(arr, size); //print the array after rearranging the values cout<<"\nRearrangement of an array such that ‘arr[j]’ becomes ‘i’ if ‘arr[i]’ is ‘j’ is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }
Array before Arrangement: 3 4 1 2 0 Rearrangement of an array such that ‘arr[j]’ becomes ‘i’ if ‘arr[i]’ is ‘j’ is: 4 2 3 0 1
以上がC++ で 'arr' が 'j' の場合、'arr' が 'i' になるように配列を再配置します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP で配列をディープ コピーする方法には、json_decode と json_encode を使用した JSON エンコードとデコードが含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

多次元配列のソートは、単一列のソートとネストされたソートに分類できます。単一列のソートでは、array_multisort() 関数を使用して列ごとにソートできますが、ネストされたソートでは、配列を走査してソートするための再帰関数が必要です。具体的な例としては、製品名による並べ替えや、売上数量や価格による化合物の並べ替えなどがあります。

PHP で配列のディープ コピーを実行するためのベスト プラクティスは、 json_decode(json_encode($arr)) を使用して配列を JSON 文字列に変換し、それから配列に戻すことです。 unserialize(serialize($arr)) を使用して配列を文字列にシリアル化し、それを新しい配列に逆シリアル化します。 RecursiveIteratorIterator を使用して、多次元配列を再帰的に走査します。

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

PHP の array_group() 関数を使用すると、指定したキーで配列をグループ化し、重複する要素を見つけることができます。この関数は次の手順で動作します。 key_callback を使用してグループ化キーを指定します。必要に応じて、value_callback を使用してグループ化値を決定します。グループ化された要素をカウントし、重複を特定します。したがって、array_group() 関数は、重複する要素を見つけて処理するのに非常に役立ちます。

はい、多くのプログラミング言語では、配列を関数のパラメーターとして使用でき、関数はそこに格納されているデータに対して操作を実行します。たとえば、C++ の printArray 関数は配列内の要素を出力できますが、Python の printArray 関数は配列を走査してその要素を出力できます。これらの関数によって配列に加えられた変更は、呼び出し関数の元の配列にも反映されます。

PHP 配列重複排除アルゴリズムの複雑さ: array_unique(): O(n) array_flip()+array_keys(): O(n) foreach ループ: O(n^2)
