Pythonでバブルソートと選択ソートと挿入ソート

最近、Pythonを始めました。
前に書いた記事のテストを兼ねてバブルソートと選択ソートの関数を書いてみました。

バブルソート

def bubble_sort(ar):
  for i in range(0,len(ar)-1):
    for j in range(i+1,len(ar)):
      if ar[i] > ar[j]:
        ar[i], ar[j] = ar[j], ar[i]
  return ar

選択ソート

def select_sort(ar):
  for i in range(0, len(ar) - 1):
    mini = ar[i]
    k = i
    for j in range(i + 1, len(ar)):
      if ar[j] < mini:
        mini = ar[j]
        k = j
    ar[i], ar[k] = ar[k], ar[i]
  return ar

実行

ar = [5,4,3,2,1]
print(ar)

ar_buble = bubble_sort(ar)
print(ar_buble)

ar_select = select_sort(ar)
print(ar_select)

実行結果

[5, 4, 3, 2, 1] #元のリスト
[1, 2, 3, 4, 5] #バブルソート
[1, 2, 3, 4, 5] #選択ソート

挿入ソート

2021年7月10日追記
挿入ソートについても書いてみました。

def insert_sort(a):
  for i in range(1, len(a)):
    temp = a[i]
    if temp < a[i - 1]:
      j = i
      while temp < a[j - 1] and j > 0:
        a[j] = a[j - 1]
        j -= 1
      a[j] = temp
  return a

コメント

タイトルとURLをコピーしました