バブルソートとは
バブルソートとは、
です。
バブルソートは、隣接する要素を比較し、必要に応じて交換を繰り返すシンプルなソートアルゴリズムです。
その動作が、液体の中で大きな泡が上に浮かび上がるように見えることから、この名前が付けられました。
アルゴリズムの概要
リストの末尾から隣接する要素を比較して適切に交換し、最終的にリストの先頭にソート済みの部分が作成されていきます。
挿入ソートのアルゴリズム
-
-
ステップ1リストの末尾から順に隣接する要素を比較する左の要素が右の要素より大きい場合、それらを交換する
-
ステップ2ステップ1をリストの先頭まで行う最も小さい要素が先頭に位置することになる
-
ステップ3未ソートの部分がなくなるまでステップ2を繰り返す
-
性能
時間計算量
時間計算量は以下の通りです。
空間計算量
空間計算量は、 \(O(1)\)(インプレース実装可能)
特徴
長所
短所
実装(Python)
def bubble_sort(nums):
unsorted_head = 0
swapped = True
while swapped:
swapped = False
for i in range(len(nums) - 1, unsorted_head, -1):
if nums[i] < nums[i - 1]:
nums[i], nums[i - 1] = nums[i - 1], nums[i]
swapped = True
unsorted_head += 1
nums = [4,2,3,1]
bubble_sort(nums)
print(nums)
[1, 2, 3, 4]
コメント