文字の組み合わせをソートするJavaアルゴリズム

文字の組み合わせをソートするJavaアルゴリズム

Java の文字の組み合わせソートは、特に難しい問題ではありません。ブルートフォースとグラフ理論 (深さトラバーサル) の両方が可能で、結果は 198 です。グラフ理論は、無向グラフを構築し、深さ優先再帰を行うことです。
タイトル: 1、2、2、3、4、5 の 6 つの数字を使用して、512234、412345 などのさまざまな配置をすべて出力するメイン関数を Java で記述します。要件は、「4」を 3 番目の位置に配置できないことと、「3」と「5」を接続できないことです。

Javaコード:

  1. パッケージ com.graphic;
  2. java.util.Iterator をインポートします。
  3. java.util.TreeSet をインポートします。
  4. パブリッククラスCharSequence{
  5. プライベートString[] c = {"1","2","2","3","4","5"};
  6. プライベートint n = c .length;
  7. プライベートboolean[]訪問=新しいboolean[n];
  8. プライベート int[][] g = new int[n][n];
  9. プライベート TreeSet ts = new TreeSet();
  10. プライベート文字列結果= "" ;
  11. パブリックCharSequence(){
  12. for(int i = 0 ; i
  13. for(int j = 0 ; j
  14. i == jの場合、g[i][j] = 0;
  15. それ以外の場合g[i][j] = 1;
  16. }
  17. }
  18. 3[3][5] = 0;
  19. 5 3 = 0;
  20. }
  21. パブリックvoid depthFirst(intインデックス){
  22. 訪問[インデックス] = true;
  23. 結果 += c[インデックス];
  24. if(result.length() == n){
  25. ts.add(結果);
  26. 結果result = result.substring(0,result.length()-1);
  27. 訪問[インデックス] = false;
  28. }
  29. それ以外{
  30. for(int i = 0 ; i
  31. if(!visited[i] && g[index][i] == 1){
  32. 深さ優先(i);
  33. }そうでない場合は続行します。
  34. }
  35. 結果result = result.substring(0,result.length()-1);
  36. 訪問[インデックス] = false;
  37. }
  38. }
  39. パブリック void グラフィック取得(){
  40. for(int i = 0 ; i
  41. 深さ優先(i);
  42. }
  43. 整数カウント= 0 ;
  44. System.out.print("グラフ理論の結果: ");
  45. イテレータit = ts .iterator();
  46. while(it.hasNext()){
  47. 文字列tmp = it .next();
  48. if(tmp.contains("35")) 続行します。
  49. if(tmp.contains("53")) 続行します。
  50. if(tmp.charAt(3) == '4') 継続;
  51. システム出力をprintln(tmp);
  52. カウント++;
  53. }
  54. System.out.println("合計: "+count+"");
  55. }
  56. パブリック void ブルートフォース(){
  57. System.out.println("ブルートフォース検索の結果: ");
  58. 整数カウント= 0 ;
  59. (int i = 122345 ; i < 543222 ; i++){
  60. 文字列tmp = "" +i;
  61. if(tmp.charAt(3) == '4') 継続;
  62. if(tmp.contains("35")) 続行します。
  63. if(tmp.contains("53")) 続行します。
  64. if(tmp.contains("5") && tmp.contains("4") && tmp.contains("3") && tmp.contains("1"))
  65. {
  66. intインデックス= tmp.indexOf ("2");
  67. if(インデックス== -1) 継続;
  68. if( index == tmp.length()-1) 継続;
  69. if(tmp.substring(index+1).contains("2")){
  70. システム出力をprintln(tmp);
  71. カウント++;
  72. }
  73. }
  74. }
  75. System.out.print("合計: "+count+"");
  76. }
  77. パブリック void recrusive(){
  78. }
  79. パブリック静的voidメイン(String[] args) {
  80. CharSequence cs =新しいCharSequence();
  81. //グラフ理論法
  82. cs.graphicGet();
  83. // ブルートフォース検索
  84. cs.bruteForce();
  85. }
  86. }

この例がお役に立つことを願っています。次の記事では、Java ソートアルゴリズムの概要を紹介します。

【編集者のおすすめ】

  1. Java による CSV 読み取りの実践についての簡単な説明
  2. Javaアプリケーションのパフォーマンスに関する3つの一般的な課題
  3. インターネット開発に Java を使用する利点は何ですか?
  4. Java マルチスレッド プログラミングの詳細な分析

<<:  Javaソートアルゴリズムの概要(I):挿入ソート

>>:  Javaは一般的な組み合わせアルゴリズムを実装する

ブログ    
ブログ    
ブログ    

推薦する

追跡すべきマルチモーダル LLM が多すぎますか?まずは26のSOTAモデルを見てみましょう

現在、AI分野の焦点は大規模言語モデル(LLM)からマルチモーダルへと移行しており、その結果、LLM...

スタンフォード大学:大きなモデルは間違った方向に「転がっている」のか?コンテキスト ウィンドウが長くなるほど、モデルは愚かになります。

言語モデルでは、コンテキスト ウィンドウは、特定のコンテキストに関連するテキストを理解して生成するた...

ChatGPT は来週 6 つの主要なアップデートを予定しています。

公式発表では来週6つのメジャーアップデートが予定されているとのこと。早速見ていきましょう。写真1. ...

AIスタートアップ向け優秀開発ツールガイドが人気に、Jupyterの「キラー」も発見される

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

米空軍、戦闘機で人工知能をテスト

人工知能は戦闘機を効果的に操縦できるのか?米空軍は、コードネームXQ-58ヴァルキリーという実験機で...

未来のサイバー攻撃の原型: ChatGPT の 7 つの「邪悪な双子」

あらゆる技術革新と同様に、生成 AI ツールにも暗い側面があり、人命を害するために悪用される可能性も...

人工知能の簡単な歴史 | (1) ディープラーニング、人工知能の新たな盛り上がり

人工知能はまだ少し遠く、Google の巨大なデータセンターの部屋や神秘的な MIT ロボット工学研...

8x7B オープンソース MoE が Llama 2 に勝ち、GPT-4 に迫る!欧州版OpenAIがAI界に衝撃を与え、22人の企業が半年で20億ドルの評価額を獲得

オープンソースの奇跡が再び起こりました。Mistral AI が初のオープンソース MoE 大規模モ...

無人運転車の現状はどうなっているのでしょうか?

私たちはここ数年、自動運転車について話し合い、議論してきました。しかし、道路上では見かけません。これ...

データ構造フレームワークの考え方を理解すると、すべてのアルゴリズムは単なる張り子の虎に過ぎない

1. データ構造の保存方法データ構造を保存する方法は、配列 (順次ストレージ) とリンク リスト (...

...

企業がAI対応データベースを使用してAI導入を加速する方法

今日、企業や IT プロフェッショナルは、これまで以上にデータベースに高い期待を寄せています。データ...

...

...