新聞中心
冒泡排序是一種簡(jiǎn)單的排序算法,它重復(fù)地遍歷要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過(guò)來(lái),遍歷數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說(shuō)該數(shù)列已經(jīng)排序完成。

以下是冒泡排序的Python代碼實(shí)現(xiàn):
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 標(biāo)記是否發(fā)生了交換
swapped = False
for j in range(0, ni1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
swapped = True
# 如果沒(méi)有發(fā)生交換,說(shuō)明已經(jīng)有序,直接返回
if not swapped:
return arr
return arr
冒泡排序的時(shí)間復(fù)雜度為O(n^2),其中n為數(shù)組的長(zhǎng)度,在最壞的情況下,需要進(jìn)行n*(n1)/2次比較和交換操作,雖然冒泡排序的性能不如其他高級(jí)排序算法,但它的實(shí)現(xiàn)簡(jiǎn)單,對(duì)于小規(guī)模數(shù)據(jù)或者部分有序的數(shù)據(jù),冒泡排序仍然是一個(gè)不錯(cuò)的選擇。
下面是冒泡排序的一個(gè)示例:
arr = [64, 34, 25, 12, 22, 11, 90]
print("原始數(shù)組:", arr)
sorted_arr = bubble_sort(arr)
print("排序后的數(shù)組:", sorted_arr)
輸出結(jié)果:
原始數(shù)組: [64, 34, 25, 12, 22, 11, 90] 排序后的數(shù)組: [11, 12, 22, 25, 34, 64, 90]
FAQs
Q1: 冒泡排序的原理是什么?
A1: 冒泡排序的原理是通過(guò)不斷地比較相鄰的兩個(gè)元素,如果它們的順序錯(cuò)誤就交換它們的位置,這樣每一輪遍歷后,最大的元素就會(huì)被移動(dòng)到數(shù)列的末尾,重復(fù)這個(gè)過(guò)程,直到整個(gè)數(shù)列都有序?yàn)橹埂?/p>
Q2: 冒泡排序的優(yōu)點(diǎn)和缺點(diǎn)是什么?
A2: 冒泡排序的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,對(duì)于小規(guī)模數(shù)據(jù)或者部分有序的數(shù)據(jù),冒泡排序仍然是一個(gè)不錯(cuò)的選擇,缺點(diǎn)是時(shí)間復(fù)雜度較高,為O(n^2),在處理大規(guī)模數(shù)據(jù)時(shí)效率較低,冒泡排序是穩(wěn)定的排序算法,即相等的元素在排序后保持原有的相對(duì)順序。
文章題目:冒泡排序python代碼
鏈接地址:http://fisionsoft.com.cn/article/dhcoddi.html


咨詢
建站咨詢
