1

私の課題では、入力されたデータを 2D 配列に格納し、選択ソートを使用して犯罪をアルファベット順にソートするよう求められます。次の選択ソートを変更するにはどうすればよいですか:

//selection sort
    for(i = 0; i < criminal.length; i++){
        smallest = i;

        for(j = i; j < criminal.length; j++){
            //compare smallest to current position
            if(criminal[j] < criminal[smallest]){
                smallest = j;
            }

         //swap smallest with position in the array
         temp = criminal[i];
         criminal[i] = criminal[smallest];
         age[smallest] = temp;

        }


    }           
    //output 
    for(i = 0; i < criminal.length; i++){
        System.out.println(criminal[i]);
    }

次のような 2D 配列に対応できるようにします。

//loop to request to fill array
    for (i = 0; i < criminals.length ; i++) {               
            System.out.print("Enter first and last name of criminal: ");
            criminals[i][0] = br.readLine(); //Criminal Name

            System.out.print("Enter crime committed: ");
            criminals[i][1] = br.readLine(); //Criminal Crime

            System.out.print("Enter year of conviction: ");
            criminals[i][2] = br.readLine(); //Year of conviction
    }

それでおしまい。どんな助けでも素晴らしいでしょう!私は本当にこれをできるだけ早く終わらせる必要があります。前もって感謝します。:)

4

3 に答える 3

0

名前を並べ替えていますが、たまたま他の 2 つのフィールドが関連付けられています。インデックスを交換することで並べ替えを行う場合、犯罪者[][] のエントリ (行) の適切なインデックスを交換する必要があります。

于 2013-09-19T03:34:19.403 に答える
0
Arrays.sort(criminal, new Comparator<String[]>() {
   @Override
   public int compare(String[] o1, String[] o2) {
      return o1[0].compareTo(o2[0]);
   }        
});
于 2013-09-19T03:54:21.713 に答える