バブル ソートは、隣接する要素の順序が間違っている場合に繰り返し入れ替えることで機能する、最も単純な並べ替えアルゴリズムです。
バブルソート用のPythonプログラム
提供される パイソン このコードはバブル ソート アルゴリズムを実装しています。このアルゴリズムは、隣接する要素を繰り返し比較し、順序が間違っている場合は入れ替えることによって配列を並べ替えます。このアルゴリズムは配列を複数回反復処理し、各パスでソートされていない最大の要素を最後の正しい位置にプッシュします。コードには最適化が含まれています。パス中にスワップが行われない場合、配列はすでにソートされており、ソート プロセスは停止します。この例では、配列を初期化し、bubbleSort 関数を適用して配列を並べ替え、並べ替えられた配列を出力します。ソート後の出力は [11, 12, 22, 25, 34, 64, 90] となり、昇順を示します。
Python3 # Python program for implementation of Bubble Sort def bubbleSort(arr): n = len(arr) # optimize code, so if the array is already sorted, it doesn't need # to go through the entire process # Traverse through all array elements for i in range(n-1): # range(n) also work but outer loop will # repeat one time more than needed. # Last i elements are already in place swapped = False for j in range(0, n-i-1): # traverse the array from 0 to n-i-1 # Swap if the element found is greater # than the next element if arr[j]>arr[j + 1]: swapped = True arr[j], arr[j + 1] = arr[j + 1], arr[j] if not swapped: # 単一のスワップを行う必要がない場合# メインループを終了するだけです。 return # 上記をテストするドライバー コード arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('ソートされた配列は:') for i in range(len(arr)): print('% d' % arr[i], end=' ')>>'
出力 時間計算量 : の上2)。
補助スペース :お(1)。
完全な記事を参照してください バブルソート 詳細については!
Python3 def bubblesort(elements): # Looping from size of array from last index[-1] to index [0] for n in range(len(elements)-1, 0, -1): swapped = False for i in range(n): if elements[i]>elements[i + 1]: swapped = True # 要素が配列内の次の要素より小さい場合はデータを交換します elements[i]、elements[i + 1] = elements[i + 1]、交換されない場合は elements[i] : # 単一のスワップを行わなかった場合は関数を終了 # 配列はすでにソートされていることを意味します。 return 要素 = [39, 12, 18, 85, 72, 10, 2, 18] print('ソートされていないリストは,') print(elements) bubblesort(elements) print('ソートされた配列は, ') print(要素)>>'
出力 時間計算量 : の上2)。ただし、実際には、この最適化されたバージョンでは、配列がソートされると関数が返されるため、所要時間は短くなる可能性があります。
補助スペース :お(1)。