冒泡排序算法的原理如下:
-
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
-
對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數。
-
針對所有的元素重復以上的步驟,除了最后一個。
-
持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較
-
時間復雜度O(n)~O(n^2)
def bubble_sort(array): if len(array) <2: return array else: num = 0 for j in range(len(array)-1): for i in range(len(array)-1-j): num += 1 if array[i] > array[i+1]: mid = array[i+1] array[i+1], array[i] = array[i], mid print(array) print(num) return array array_0 = [12, 23, 54, 32, 11, 76, 5, 73] print(bubble_sort(array_0))
[12, 23, 32, 11, 54, 5, 73, 76] [12, 23, 11, 32, 5, 54, 73, 76] [12, 11, 23, 5, 32, 54, 73, 76] [11, 12, 5, 23, 32, 54, 73, 76] [11, 5, 12, 23, 32, 54, 73, 76] [5, 11, 12, 23, 32, 54, 73, 76] [5, 11, 12, 23, 32, 54, 73, 76] 28 [5, 11, 12, 23, 32, 54, 73, 76]