文字の組み合わせをソートする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は一般的な組み合わせアルゴリズムを実装する

ブログ    
ブログ    

推薦する

AI「黒ヘルメット」が成都でデビュー、警察が2分で路上で数百人の体温を検査!

[[317566]] 、新型コロナウイルスは世界的な感染拡大段階に入り、記事執筆時点で中国国内の累...

...

展望: 2023 年のディープラーニングとメタバースの未来

ディープラーニング (DL) は、再帰型ニューラル ネットワーク、長期短期記憶、畳み込みニューラル ...

Baidu Mapsは、インテリジェントな位置情報サービスプラットフォームを構築するために、新世代の人工知能マップエコシステムをリリースしました。

2019年12月10日、北京で百度地図生態系会議が開催され、「新世代人工知能地図」の生態パノラマが...

AIと自動化によるセキュリティの向上

2020年に突如発生した新型コロナウイルス感染症のパンデミックにより多くの従業員が自宅待機を余儀なく...

AI技術の現状を理解するのに役立つ45の数字

2019年7月現在、AIの現状はどうなっているのでしょうか。最新の調査、研究、予測に基づき、AI技術...

...

予測トークンの速度が2倍になりました! Transformerの新しいデコードアルゴリズムは人気がある、Alpacaチームより

アルパカチームの新たな研究は大ヒットとなっている。彼らは、モデルが 100 個のトークンを 1.5 ...

機械学習を生産性に変えるには、よくある 4 つの落とし穴に注意してください。

[[279043]]ビッグデータダイジェスト制作出典: topbots編纂者:呉帥ある技術カンファ...

...

最も強力なオープンソースのマルチモーダル生成モデル MM-Interleaved: 最初の機能同期装置

AI がチャットできるだけでなく、「目」を持ち、絵を理解し、絵を描くことで自分自身を表現することさえ...

謎の AI 顔変更ソフトウェアが世界中のソーシャル ネットワークに侵入!マスク氏は数秒でルネサンス貴族になる

[[410798]] FaceAppの人気は過ぎ去り、最近では、あなたの顔を数秒で「ディズニー」に変...

Googleの検索アルゴリズムがユーザーをより深く理解する方法

Googleは現在、コア検索アルゴリズムに変更を加えており、検索結果の最大10分の1のランキングに影...

多言語AI分析は、顧客体験の可能性を解き放ち、ビジネスの成長を促す鍵となる

テキスト分析は、顧客が話す言語に関係なく、顧客の意見のあらゆる例を発見して注釈を付けることができる強...

MySQL インデックスの背後にあるデータ構造とアルゴリズムの基礎

インデックスの性質MySQL のインデックスの公式定義は次のとおりです: インデックスは、MySQL...