Javaでの順列の説明[コーディング例付き]

公開: 2020-11-24

JAVAは、1995年にSunMicrosystemsのJamesGoslingによって開発されました。JAVAを使用すると、開発者は、Linux、Windows、macOSベースのオペレーティングシステムなど、ほぼすべてのプラットフォームで実行できる、安定した、安全で復元力のあるアプリケーションを作成できます。

JAVA(WORAとも呼ばれます)Write Once、Run Alwaysプロパティを使用すると、すでに十分にコンパイルされたコードを再コンパイルする必要もありません。 このJAVAの多様性により、組み込みの複雑な論理的および数学的機能をほぼすべてのタイプのクロスプラットフォームアプリケーションに統合するための理想的な言語になります。

他の代替(または一般的な)Web開発環境とは対照的に、JAVAを使用してWebアプリを開発することの利点は、持続的なアプリケーションの利点の3つの主要な柱にまで及びます。

  1. JAVA構文は、習得と適応が容易であり、あらゆるレベルのペースと複雑さのコーダーに適しています。 これにより、JAVAは、頻繁な人事異動の対象となる開発チームにとって安全な賭けになります。 新しいリソースが共通の開発プラットフォーム(JAVA)に対応するのにかかる時間は、業界で最も短い時間の1つです。
  2. JAVAは高レベルのオブジェクト指向プログラミング言語であり、アプローチが完全にモジュール化されており、開発者は機能的に再利用可能なコードのチャンクを作成できるため、労力が軽減されます。 組み込み関数の膨大なライブラリにより、他の3次プラグインやコンパイラアドオン、スクリプトなどへの依存も軽減されます。これにより、JAVAの実装時間が最短になります。
  3. 上記のように、JAVAはプラットフォームに依存しないことにより、すべての世界の最高のものをブレンドします。 JAVAで開発されたWebアプリケーションは、機能を失うことなく、あるオペレーティングシステムから別のオペレーティングシステムに簡単に移動できます。これは、あらゆる開発環境で所有できる貴重なユーティリティです。

JAVAをWebの開発プラットフォームとして非常に有利にする側面の1つとして、その最小限の実装依存性数学的に健全な構文を惜しみなく活用して、最小限の追加で組み込み関数を呼び出すだけで、ほとんどすべての数学または論理命令を実行できます。カスタマイズ。

コードにおけるこの柔軟性の最も明るい例の1つは、 JAVAで順列を実行する機能です。具体的には、特定の文字列で使用可能なすべての文字のすべての可能な順列を真にランダム化して検索します。

このガイド付きチュートリアルでは、文字列の最初の文字を文字列の「追跡された」場所に格納し、generatePermutation()関数を呼び出して他のすべてバリエーションと異なるバリエーションをランダム化することにより、JAVAでこの順列を実行する方法を学習します。文字列内の文字。

読む: Javaインタビューの質問と回答

目次

Javaでの順列—バックトラッキングアルゴリズムの概念

このJAVAでの順列の問題の解決策を見つけるには、まず、バックトラッキングアルゴリズムは再帰的なプロセスであり、特定の文字列1つの文字を定期的に修正し、それを他のすべての文字のすべての可能な順列と組み合わせ、文字列のすべての位置にある文字でこのプロセスを繰り返して、最大値に到達します。 (そしてすべての可能な)その文字列のバリエーションの数。

このJAVAの順列アルゴリズムは、3文字の特定の文字列のコンテキストで理解しやすくなります。 特定の文字列内のこれらの3文字がA、B、およびCであるとしましょう。

JAVAでこの順列を実行する最初のステップは、1つの文字を修正することから始め(常に最初の位置で使用可能な文字を修正することから始めます)、次に残りのすべての文字を元の文字と組み合わせてスワップを実行します(固定)文字。

たとえば、ABC文字列の例では、文字A (ABC文字列の次に、 ABC BAC 、およびCBAの組み合わせに到達します

次のステップは、文字列の次の位置にある文字(この場合は文字列の2番目の位置にある文字、つまりB )を同様に「最終的には、可能なすべての順列完全なセットに到達するまで、ランダム化の各レベルが達成された状態でこのステップを繰り返し続けます

ABC

ACB

BAC

BCA

CBA

タクシー

この記事の最後にあるサンプルコード/望ましい出力セクションでは、JAVAで順列を実行するこの試みを読みやすいコードに変換し、それによって順列がリアルタイムで計算されることを確認します。

JAVAでの順列の実行—バックトラックとスワップへの再帰的アルゴリズム

ランダムな文字列を取得し、JAVAで完全な順列を実行するプロセスの簡潔な要約は、次のステップバイステップの再帰的アルゴリズムで説明できます。

  1. 文字列の定義–まず、文字列を定義します。 入力変数としてランダムな文字列を受け入れることをいつでも選択できますが、目的と労力を明確にするために、この例では事前定義された文字列ABCを使用します。
  2. 文字の修正– 1つの文字を修正します(最初の位置にある文字から始めて、残りのすべての文字と交換し続けます)。
  3. generatePermutation() –残りのすべての文字について、generatePermutation()関数からの出力を呼び出して使用します。
  4. 再帰的バックトラッキング–「バックトラッキング」アルゴリズムを実行し、コードが文字列の最後に到達するまで(現在の例では、Cまで)文字を再帰的に交換し続けます。

JAVAでの順列の実行—サンプルコード:

パブリッククラスPermuteString{

//位置iの文字を位置jのすべての文字と交換する関数を定義します

public static String swapString(String a、int i、int j){

//文字列内の固定文字の文字定義

char [] b = a.toCharArray();

char ch;

//次のステップでスワップを実行します

ch = b [i];

b [i] = b [j];

b [j] = ch;

String.valueOf(b);を返します。

}public static void main(String [] args)

{{

//デフォルトの文字列ABCを定義する

文字列str=“ ABC”;

//文字列の長さを数える

int len = str.length();

//すべてのランダム化を印刷します

System.out.println( "以下は、文字列ABCのすべての可能な順列です:");

generatePermutation(str、0、len);

}

//文字列のすべての可能な順列を生成する関数を定義します

public static void generatePermutation(String str、int start、int end)

{{

//すべての順列を印刷します

if(start == end-1)

System.out.println(str);

そうしないと

{{

for(int i = start; i <end; i ++)

{{

//文字列を入れ替えるために文字を修正する

str = swapString(str、start、i);

//残りのすべての文字に対してgeneratePermutation()関数を再帰的に呼び出しますgeneratePermutation(str、start + 1、end);

//文字をもう一度入れ替えるためにバックトラッキングアルゴリズムを実行します

str = swapString(str、start、i);

}

}

}

}

JAVAでの順列の実行—サンプルコードから派生した出力:

このサンプルをコンパイルして実行すると、目的の出力は次のようになります。

以下は、文字列ABCのすべての可能な順列です。

ABC

ACB

BAC

BCA

CBA

タクシー

必読:興味深いJavaプロジェクトとトピック

結論

このチュートリアルがJAVAで順列を実行するのに役立つことを願っています。

Java、OOP、フルスタックソフトウェア開発について詳しく知りたい場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のPGディプロマをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニングを提供します。9 +プロジェクト、割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。

未来のキャリアに備える

業界で信頼されている学習-業界で認められた認定。
もっと詳しく知る