2016-03-31 8 views
-1

現在、2D配列を昇順使用選択ソートにソートしようとしています。結果は良くありません。 私は実際に [1000] [1000] double配列のような、かなり大規模なデータを持っているが、このような私たちの例の使用データの場合:2次元配列は次のように並べ替えにすることができ、取ることができ作り方ベストソート2D double array in Java

arrays = 10.555 1.023 5.852   
     8.856 1.001 4.483 
     1.121 5.321 1.184 
     5.123 0.834 3.151 
     15.123 7.123 1.152 

以前にソートしていないインデックスに配列のソート後 :

arrays = 1.121 0.834 1.152 
     5.123 1.001 1.184 
     8.856 1.023 3.151 
     10.555 5.321 4.483 
     15.123 7.123 5.852 

と、このような2次元配列では、このようなインデックスを保存することができます。

save_index = 2 3 4 
      3 1 2 
      1 0 3 
      0 2 1 
      4 4 0 

このコードは、double array [1000] [1000]のような大きなデータセットで使用できます。解決策は何ですか?

+2

したがって、各列を個別にソートしようとしていますか?配列を転置(行と列の切り替え)し、Javaを使用して並べ替えるのが最も簡単です。 – Teepeemm

答えて

0

各列を別々に並べ替えるように見えるので、私の前提が正しい場合、次の答えがあります。 このような問題を解決するには、選択ソートを使用しません。私は、挿入の並べ替えを使用する(より速いので)といくつかの列にのみ行くだろういくつかのネストされたループがあります。 (たとえば、ループが最初に実行されたときに、最初の列のみを実行し、2回目は2番目の列のみを実行します)。

0

文献にはいくつかのソートアルゴリズムがあります。最速のものの1つは、満足できる最悪および平均のケースパフォーマンスを備えた「クイックソート」です。だから、より効果的なアルゴリズムを実装しようとするのではなく、チェックする方がよいでしょう。あなたはそれを見てみることができますhere