前提・実現したいこと
javaで配列をバブル・選択ソートし、それぞれ入れ替え回数を求め出力する処理で、選択ソートの回数が0になります。
現在の出力結果
Bubble sort = 6218919 回 Selection sort = 0 回
###現在の状況
バブルソート・選択ソートを用い、配列を降順に並べ替えたとこで詰まっています。
該当のソースコード
java
1import java.util.*; 2 3public class Rep403_4 { 4 public static void main(String[] args) { 5 6 int[] ary = new int[5000]; 7 Random r=new Random(3); 8 for(int i=0; i<ary.length; i++){ 9 ary[i]=r.nextInt(9999); 10 } 11 12 13 // バブルソート 14 int cnt1=0; //追記 15 for(int i=0 ; i<ary.length-1 ; i++){ 16 for(int j=ary.length-1 ; j>i ; j--){ 17 if(ary[j-1]<ary[j]){ 18 int tmp=ary[j-1]; 19 ary[j-1]=ary[j]; 20 ary[j]=tmp; 21 cnt1++; //追記 22 } 23 } 24 } 25 26 // 選択ソート 27 int cnt2=0; //追記 28 for(int i=0 ; i<ary.length-1 ; i++){ 29 int max=ary[i]; 30 int pos=i; 31 32 for(int j=i+1 ; j<ary.length ; j++){ 33 if(ary[j]>max){ 34 max = ary[j]; 35 pos = j; 36 37 int tmp=ary[i]; 38 ary[i] = ary[pos]; 39 ary[pos] = tmp; 40 cnt2++; //追記 41 } 42 } 43 } 44 System.out.println("Bubble sort = " + cnt1 + " kai"); //追記 45 System.out.println("Selection sort = " + cnt2 + " kai"); //追記 46 47 } 48}
###その他
当方プログラミング初心者で、質問するのに必要な情報が抜けている事が多々あります。。。
ご指摘くだされば適宜追加します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/20 07:37
2020/12/20 07:39 編集
2020/12/20 07:40