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衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











foreach ループを使用して PHP 配列から重複要素を削除する方法は次のとおりです。配列を走査し、要素がすでに存在し、現在の位置が最初に出現しない場合は、要素を削除します。たとえば、データベース クエリの結果に重複レコードがある場合、このメソッドを使用してそれらを削除し、重複レコードのない結果を取得できます。

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

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

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

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

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

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

PHP で配列キー値を交換するための 3 つの一般的なアルゴリズムには、それぞれ長所と短所があります。 array_flip(): シンプルで効率的ですが、値は一意である必要があり、多次元配列を処理できません。手動トラバーサル: 多次元配列を処理し、例外を制御できますが、コードが長くなり、効率も低下します。 ksort()+array_keys(): あらゆるタイプの配列を処理し、ソート順序を制御できますが、効率は低くなります。実際のケースでは、array_flip() が最も効率的であることが示されていますが、多次元配列を扱う場合は、手動による走査の方が適切です。
