並べ替えアルゴリズム-Buble


バブルソートとは?


これは、2つの隣接する要素をソートする方法です.
時間的複雑度はO(n^2)であるが,容易に実現できる.
def bubble(array):
    print("bubble")
    for i in range(len(array)-1):
        for j in range(len(array)-1-i):
            if array[j] > array[j+1]:
                array[j],array[j+1] = array[j+1],array[j]
一番前の数字から次の数字まで、後ろの数字と比較して、後ろの数字がもっと小さいときに交換する方式です.
上記のコードを詳細に取り外すサイクル手順は以下の通りです.
Array=[3,4,5,2,1]の場合
1番目の大リングを起動
最初の数値3を比較します(最初の数値=0がインデックス数値の場合)
3>4:後ろの数字がもっと大きいです.変わらない
2番目の数字4の比較
4<5:後の数字はもっと大きいです.変わらない
3番目の数字5の比較
5>2:後ろの数字はもっと小さいです.てんい
Array = [3,4,2,5,1]
4番目の数字5の比較
5>1:後ろの数字はもっと小さいです.てんい
Array = [3,4,2,1,5]
最初の大きなサイクルが終わります.(for i)
2番目の大きなループを起動
Array = [3,4,2,1,5]
1番目の数字3の比較
3<4:後ろの数字はもっと大きいです.変わらない
2番目の数字4の比較
4<2:後の数字はもっと小さいです.てんい
Array = [3,2,4,1,5]
3番目の数字4の比較
4<1:後ろの数字はもっと小さいです.てんい
Array = [3,2,1,4,5]
2つ目の大サイクル終了5に比較しない理由は、最初の大きなサイクルで最大のデジタルビット数を決定するためである.同じ原理で、2番目のサイクルが終わると、2番目の大きなデジタル位置が決まります.
3番目の大リングを起動
Array = [3,2,1,4,5]
1番目の数字3の比較
3<2:後の数字はもっと小さいです.てんい
Array = [2,3,1,4,5]
2番目の数字の比較3
3<1:後ろの数字はもっと小さいです.てんい
Array = [2,1,3,4,5]
3つ目の大サイクル終了
4番目の大リングを起動
Array = [2,1,3,4,5]
最初の数字2の比較
2<1:後ろの数字はもっと小さいです.てんい
Array = [1,2,3,4,5]
4つ目の大サイクル終了
終止大環