2017-05-16 2 views
-3

あらかじめ定義された方法を使わずに多次元配列をソートする必要がありますが、論理的になります。多次元配列をJavaで論理的にソートする方法は?

int arr [] [] = {{5,2,3}、{2,8,5}、 {7,4,5}}; 1次元配列の場合に

のint NUM [] = {125,28,31,40,12}。

for(int i=0;i<=num.length-1;i++){ 
    for(int k=0;k<=num.length-2;k++){ 
     if(num[k]>num[k+1]){ 
      int temp=0;  
      temp=num[k];  
      num[k]=num[k+1];  
      num[k+1]=temp;  
      }    
    }  
} 
for(int s=0;s<=num.length-1;s++){ 
    System.out.println(num[s]);   
} 

多次元配列の場合はどうなりますか?スタックオーバーフローへ

+2

ようこそ! [ツアー]を見て回り、[ヘルプ]、特に[*良い質問をするにはどうすればいいですか?*](/ help/how-to-ask)を "論理的に"定義してください。 "あらかじめ定義された方法はありません。" (あなたが前もってやりたいことのための方法を定義することなく、ソフトウェアを書くのは本当に面倒です。これを「論理的に」しようとする作業を示してください。 –

+0

'' Collections.sort() 'や' Arrays.sort() 'のようなメソッドを"事前定義されたメソッド "と呼んでいるのなら、あなたの質問は本当に"どのようにデータをソートするのですか? "それは道**です**広すぎる**ここの話題です。ウェブでソートアルゴリズムを検索します。 ---「論理的に」は、あなたが何を考えているのかを定義していないので、私たちがあなたをどのように助けてくれると思いますか?あなたが望む結果を*推測してほしいですか?それはあまり論理的ではありませんね? – Andreas

+0

お寄せいただきありがとうございます、質問は学習目的のために尋ねられました。 – Maher

答えて

0

public static void main(String[] args) { 
 
     int u, arr[][] = {{1, 7, 2}, {9, 12}, {54, 25, 10}}; 
 
     for (int i = 0; i < arr.length; i++) { 
 
      for (int j = 0; j < arr[i].length; j++) { 
 
       for (int k = j + 1; k < arr[i].length; k++) { 
 
        if (arr[i][j] > arr[i][k]) { 
 
         u = arr[i][k]; 
 
         arr[i][k] = arr[i][j]; 
 
         arr[i][j] = u; 
 
        } 
 
       } 
 
       System.out.print(arr[i][j] + ","); 
 
      } 
 
      System.out.println(" "); 
 
     } 
 
}

関連する問題