泡の位置合わせ


はっぽうえん

  • 隣接する2つの要素を比較し、交換位置
  • を継続する.
  • ソート・プロシージャ
  • は、第1の要素から始まり、最後の位置まで隣接する要素間で位置を交換し続ける.
  • の1段階が終了すると、最大の要素は最後の位置
  • に並ぶ.
  • 交換後、移動位置の様子は水面上の泡と同じで、泡配列と呼ばれます.
  • 時間複雑度:O(n^2)
  • def bubble_sort(num):
        #원소의 마지막 부터
        #why? 최대값부터 마지막에 박고 오름차순으로 정렬할 것이기 때문
        for i in range(len(num)-1,0,-1) :
            #0번 index부터 i번째 index까지
            for j in range(0,i) :
                #num[j]가 num[j+1]보다 크면
                if num[j] > num[j+1] :
                    #위치 변경
                    num[j],num[j+1] = num[j+1],num[j]
        return num
    num = [54,26,93,17,77,31,44,55,20]
    
    print(bubble_sort(num))
  • 要素の最後の開始-後退1、最大値から最後の位置
  • まで
  • 0からiの左側が右側より大きい場合、位置
  • を変更します.
  • では、最後の値が最大値
  • に更新される.
  • では、2番目のステップ
  • が行われる.
    ループ
  • が続くと、ソートは
  • で終了する.