現在、プログラミングの勉強をしており、配列の要素を昇順、降順に並び替えたプログラムを作成したいと思っているのですが、なかなかうまくいきません...
以下は僕が作成したコードなのですが、降順を指定しても、全ての要素が一番大きい要素に書き換わってしまいます。
どなたか、教えてくださる方いましたら、よろしくお願いします。
java
1public class lesson5 { 2 3 public static void main(String[] args) { 4 5 int[] array1 = {96,45,31,29,84,77}; 6 7 OrderInfo order = new OrderInfo(); 8 9 order.display(array1,false); 10 11 order.arraySort(array1,false); 12 13 order.display(array1,true); 14 15 } 16}
java
1public class OrderInfo{ 2 3 public void display(int[] array,boolean isSorted) { 4 5 if(isSorted == false) { 6 7 System.out.println("***並び換え前***"); 8 9 } else { 10 11 System.out.println("***並び換え後***"); 12 } 13 14 15 for(int i = 0; i< array.length; i++) { 16 17 System.out.println(array[i]); 18 19 } 20 } 21 22 public void arraySort(int[] array, boolean orderType) { 23 24 for(int i = 0; i < array.length; i++) { 25 26 for(int j = 0; j < array.length; j++) { 27 28 if(orderType == false) { 29 30 if(array[i] < array[j]){ 31 32 change(array,i,j); 33 34 } 35 36 } else { 37 38 if(array[i] > array[j]) { 39 40 change(array,i,j); 41 } 42 } 43 44 } 45 46 47 } 48 49 50 51 } 52 53 54 public void change(int[] array, int i, int j){ 55 56 array[i] = array[j]; 57 58 } 59 60 61}
実行結果:
並び換え前
96
45
31
29
84
77
並び換え後
96
96
96
96
96
96
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/17 08:15