アルゴリズムりろんバブルソート
3909 ワード
泡の位置合わせ
上図に示すように、1回のシフト操作を行うと、最大値は配列の末尾に位置します。これは,操作を繰り返すことにより,次の大数を順次ソートする方法である.最大値を求める方法と似ているように見えます。
バブル整列のデフォルトフレーム
# 버블 정렬
def bubbleSort(arr):
# 배열의 크기만큼 반복
for i in range(len(arr)):
# 배열의 총 크기에서 i와 1을 뺀 만큼 반복. 그 이유는 j의 현재 인덱스가 arr의 마지막 인덱스가 되면 j와 j+1을 비교할 때, indexOutofRange 이기 때문이다.
for j in range(0, len(arr) - i - 1):
# 만약 현재 인덱스의 값이 다음 인덱스보다 크면, 서로의 위치를 바꿈.
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
arr_bubble = [4, 7, 80, 50, 30, 40, 20, 10]
bubbleSort(arr_bubble)
print(arr_bubble)
*ちなみに、降順でソートするには、不等式を次のインデックスに変更するだけです。
*Bubbleソートは便利ですが、リスト内のすべての値を二重繰り返し文で巡回するため、時間的複雑度はO(N^2)です。効率的なソート方法ではありません。
Reference
この問題について(アルゴリズムりろんバブルソート), 我々は、より多くの情報をここで見つけました https://velog.io/@code_alpaca/알고리즘-이론-거품-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol