python氣泡排序

2021-10-06 06:54:20 字數 925 閱讀 3333

import numpy as np

import time

src_list = np.random.randint(1,

100000,(

5000))

.tolist(

)# print(src_list)

"""

氣泡排序: 因為越小的元素通過交換位置慢慢,浮到數列的右側

原理:外層:第一次迴圈,把最大的數字交換到最右側

內層:需要交換多少次? 交換n-1-i次

"""def

bubble_sort

(arr)

: n =

len(arr)

for i in

range

(n -1)

:for j in

range

(n -

1- i)

:if arr[j]

> arr[j +1]

: arr[j]

, arr[j +1]

= arr[j +1]

, arr[j]

return arr

start_time = time.time(

)result = bubble_sort(src_list)

end_time = time.time(

)print

("耗時:%d 毫秒"

%int

(round

(end_time - start_time)

*1000))

# 耗時:3000 毫秒

print

(result)

# [1, 13, 15, 47, 52, 84, 93, 106, 112, 113, 122, 123, ... ]

排序 氣泡排序 Python

依次比較相鄰兩元素的大小,順序與要求的不一致就交換。這樣會把待排序序列中的最大 最小 元素不斷 浮 到最右端,最終完成公升序或降序排列。對序列 2,4,1,3,6,5 按公升序排列 只記錄有交換發生的迴圈 第一次迴圈 2,4,1,3,6,5 2,1,4,3,6,5 2,1,3,4,6,5 2,1,3...

Python排序 氣泡排序

排序 氣泡排序 氣泡排序演算法的原理如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需...

Python氣泡排序

需求 對於一串不知道個數的無序數進行從大到小或從小到大排序。氣泡排序 思想 首先第乙個數與第二個數做比較,大者放後面作為新的第二個數,然後,第二個數再與第三個數作比較,大者放後面作為新的第三個數,以此類推,相鄰兩位置數比較大小,若前者大於後者,則交換位置,這樣遍歷完一次資料就把最大數放在了最後面,即...