演習課題「バブルソートの部分的な実装」
整数nと、要素数nの整数列aが与えられるので、バブルソートでaを小さい順にソートするプログラムを作成してください。
アルゴリズムが正しく実装されていることを確認するために、各i(i=1,2,...,n - 1) についてi回目の処理が終わった時点での配列を出力してください。
右側のコードエリアには、入力を受け取り、バブルソートのループ処理と配列の出力をおこなうコードが用意されています。コードを書き加え、問題を解くコードを完成させてください。
期待する出力値
1 4 2 3 5
1 2 4 3 5
1 2 3 4 5
1 2 3 4 5
演習課題「バブルソート・コード修正」
整数nと、要素数nの整数列aが与えられるので、バブルソートでaを小さい順にソートするプログラムを作成してください。
アルゴリズムが正しく実装されていることを確認するために、各i(i=1,2,...,n-1) についてi回目の処理が終わった時点での配列を出力してください。
右側のコードエリアに用意されているコードには誤りがあります。訂正し、問題を解くコードを完成させてください。
期待する出力値
1 4 2 3 5
1 2 4 3 5
1 2 3 4 5
1 2 3 4 5
演習課題「バブルソートの実装」
整数nと、要素数nの整数列aが与えられるので、バブルソートでaを小さい順にソートするプログラムを作成してください。
アルゴリズムが正しく実装されていることを確認するために、各i(i= 1,2,...,n-1) についてi回目の処理が終わった時点での配列を出力してください。
右側のコードエリアには、入力を受け取るコードが用意されています。コメントを参考にコードを書き加え、問題を解くコードを完成させてください。
期待する出力値
1 4 2 3 5
1 2 4 3 5
1 2 3 4 5
1 2 3 4 5
#05:バブルソート
バブルソートについて学び、実際にバブルソートを実装してレベルアップ問題集の問題を解いてみます。
挿入ソートとバブルソートでは、交換回数が同じになります。
def print_array(a):
print(*a)
def bubble_sort(a, n):
for i in range(n-1):
# j が n-1 から i+1 までの for 文を用意する
for j in range(n-1, i, -1):
# A_{j-1} > A_j なら
if a[j-1] > a[j]:
# A_{j-1} と A_j を交換する
a[j], a[j-1] = a[j-1], a[j]
print_array(a)
n = int(input())
a = [int(x) for x in input().split()]
bubble_sort(a, n)
4
8 1 3 2
def print_array(a):print(*a)