標準スワップとは何ですか?
コンピュータープログラミングとコンピューターサイエンスでは、標準スワップは、2つの変数が値を交換する必要があるプログラムの状況であり、値が転送されたときに中間監督として機能するために3番目の変数の作成が必要です。標準スワップはプログラミングパラダイムです。つまり、2つのデータを交換する必要がある状況に適用でき、1つのデータ型またはプログラミング言語に結び付けられていません。値を交換する必要があるプログラムには多くのインスタンスがありますが、多くの場合、コレクションとアレイの標準的なコンポーネントであり、ソートアルゴリズムで使用する場合は、コレクションのあるインデックスから別のインデックスにアイテムを移動する必要があります。一時変数を使用して交換される値を保持します。ハードウェアの観点から見ると、標準スワップは、整数などの一部のスカラーデータ型でサポートされている低レベルプロセッサ関数になります。つまり、2つの数値を交換するためにランダムアクセスメモリ(RAM)で中間値を作成する必要はありません。
標準スワップの概念は、変数aおよびbで見ることができます。標準スワップの終わりに、bはaに等しく、aはBに等しく、aはBに等しい必要があります。プログラムがBをAに単に割り当てるだけで、Aの値をAに割り当てることはできず、後でBに割り当てることはできません。これは、Bの値を保持する一時変数を使用する必要があります。
標準スワップの非常に一般的なアプリケーションの1つは、配列またはコレクションでソートアルゴリズムを使用する場合です。ソートアルゴリズムが、配列インデックス1のデータをインデックス10のデータと交換する必要があると判断した場合、データの標準スワップを実行できます。これは、c。
などの言語でのポインター参照を使用して非常に速く実行できます。合併症は、2つのオブジェクトインスタンスがする必要がある場合、一部のオブジェクト指向プログラミング言語で発生する可能性があります交換します。非常にまれな場合には、オブジェクト参照を交換するだけでは実際のスワップが開始されません。代わりに、オブジェクトを交換する唯一の方法は、2つのオブジェクトと一時オブジェクト変数の間の内部データ、フィールドごとにフィールドをクローンすることです。
専用の(XOR)論理演算子を使用して標準スワップを実行するために技術的に使用できる手法が1つあります。 XORスワップは、2つのビットがXORで計算されると、基本的に一方または両方の演算子で逆にすることができるマスクを作成するという事実に依存しています。このようにして、2つの変数、AとBは、最初に2つの変数のうちXORを使用してマスクを作成し、次にXORを使用して最初にBの値をマスクし、次にAの値をスワップして交換できます。残念ながら、この方法は一時的な変数の作成を回避しますが、AとBが実際に変化する可能性のある場合、特にBの場合、BEはすべての場合に交換しません。