回答編集履歴

1

解説が間違っている可能性があったので削除

2018/06/16 10:57

投稿

michael-ilcsy
michael-ilcsy

スコア180

test CHANGED
@@ -23,37 +23,3 @@
23
23
  ```
24
24
 
25
25
  こんな感じになります。
26
-
27
- 重要なことが二点ありまして
28
-
29
- 一つ目はLouiS0616さんが書いている通り「入れかえ」なので
30
-
31
- ```
32
-
33
- array[i] = array[j]
34
-
35
- ```ではなく
36
-
37
- ```
38
-
39
- int asc = array[j];
40
-
41
- array[j] = array[j+1];
42
-
43
- array[j+1] = asc;
44
-
45
- ```
46
-
47
- と書く必要があること
48
-
49
- 二つ目は二つ目のループを
50
-
51
- ```for(int j=0; j < array.length-i-1; j++)```
52
-
53
- このように書くことです。
54
-
55
- 何故かといいますとこの並び替えは左から順にソートしていっているのですが、
56
-
57
- 質問者さんの書き方だとすでにソート済みのものも対象になってしまいますので
58
-
59
- ↑のような書き方をすることでソート済みのものをはぶいているわけです。