whoami

学んだことや考えたことのアウトプットをします。AtCoder@japanesekeigo Twitter@keigopiano

Bubble Sort

AOJの問題
Aizu Online Judge

みんな大好きBubble Sort
一回のfor文で対象配列の一番最大(または一番最小)を決めることができるやつだと思ってたらこいつは違った。
Python 3系で実装

def printer(A):
    ret = str(A[0])
    for i in range(1, len(A)):
        ret += " " + str(A[i])
    print(ret)
    return True


def bubblesort(A):
    ret = 0
    flag = True
    num = len(A)
    while flag is True:
        flag = False
        for i in reversed(range(1, num)):
            if A[i - 1] > A[i]:
                tmp = A[i - 1]
                A[i - 1] = A[i]
                A[i] = tmp
                flag = True
                ret += 1
        # num -= 1
    return ret


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

ans = bubblesort(A)
# print(A)
printer(A)
print(ans)