0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

def bubble_sort(A, n):
    for i in range(0,n-1):
        for j in range(n-1,i,-1):
            if A[j-1] > A[j]:
                A[j-1], A[j] = A[j], A[j-1]

        print(*A) 
            
n = int(input())
A = list(map(int,input().split()))
bubble_sort(A,n)

0)バブルソートは「左の要素と比較し、左の方が大きければ交換する」のが基本。
1)バブルソートは基本的に一番奥からなので、
  1番目のループは左の要素と考えるので、0〜全要素-2までになる。
 41352からはじめるとして、たとえばiが0なら、n-2番目は「5」になる。
2)2番目のループは右の要素で、n-1つまりこの場合は2から初めて、0番目の4まで回す。
で、A[j-1]、最初はA[3]とA[4]の比較となる。A[3]が大きければスワップ。
次はA[2]とA[3]、次はA[1]とA[2]、。。。の繰り返しで、最後まで比較していく。
3)これが全部終わった時点でプリントし、次へ。
4)この時点で、一番左は確定しているため、要素が0数えの1からになる。で、jも
  一番奥から2番目までをループで回すことになる。この繰り返し。

理屈はわかったけど、コードにできるまでが時間がかるなと思います。
ちょっと混乱するなぁ。。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?