def bubble_sort(list):
n = len(list)
ccnt = 0 # 比較回数
ecnt = 0 # 交換回数
for i in range(n-1): for j in range(n-1,i,-1): ccnt += 1 if list[j-1] > list[j]: list[j-1],list[j] = list[j],list[j-1] ecnt += 1 print(f'比較回数 ⇒ {ccnt}') print(f'交換回数 ⇒ {ecnt}') return list
list = [3,1,4,2,5,6,10,8,7,9]
print(f'----- バブルソート -----')
print("並び替え前 ⇒ " + str(list))
sorted_list = bubble_sort(list)
print("並び替え後 ⇒ " + str(sorted_list))
これは、listの中の数字を比較し、交換して小さい順に並べるプログラミングなのですが上記のコードだと比較回数が45になります。
これをどうにかして比較回数を最小の30まで減らしたいのですが詳しい方がいたら教えてください。
回答3件
あなたの回答
tips
プレビュー