def?bubbleSort(myList):
創(chuàng)新互聯(lián)公司主營(yíng)肅北網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,App定制開發(fā),肅北h5重慶小程序開發(fā)搭建,肅北網(wǎng)站營(yíng)銷推廣歡迎肅北等地區(qū)企業(yè)咨詢
#?首先獲取list的總長(zhǎng)度,為之后的循環(huán)比較作準(zhǔn)備
length?=?len(myList)
#?一共進(jìn)行幾輪列表比較,一共是(length-1)輪
for?i?in?range(0,?length?-?1):
#?每一輪的比較,注意range的變化,這里需要進(jìn)行l(wèi)ength-1-長(zhǎng)的比較,注意-i的意義(可以減少比較已經(jīng)排好序的元素)
for?j?in?range(0,?length?-?1?-?i):
#?交換
if?myList[j]??myList[j?+?1]:
tmp?=?myList[j]
myList[j]?=?myList[j?+?1]
myList[j?+?1]?=?tmp
#?打印每一輪交換后的列表
for?item?in?myList:
print(item)
print("=============================")
print("Bubble?Sort:?")
myList?=?[2,0,1,8,0,3,0,2]
bubbleSort(myList)
Python冒泡排序注意要點(diǎn)實(shí)例詳解
文給大家介紹了python冒泡排序知識(shí),涉及到冒泡排序主要的細(xì)節(jié)問(wèn)題,本文通過(guò)實(shí)例代碼給大家講解,介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
冒泡排序注意三點(diǎn):
1. 第一層循環(huán)可不用循環(huán)所有元素。
2.兩層循環(huán)變量與第一層的循環(huán)變量相關(guān)聯(lián)。
3.第二層循環(huán),最終必須循環(huán)集合內(nèi)所有元素。
示例代碼一:
1.第一層循環(huán),只循環(huán)n-1個(gè)元素。
2.當(dāng)?shù)谝粚友h(huán)變量為n-1時(shí),第二層循環(huán)所有元素。
s = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
# bubble_sort
for i in range(0, len(s) - 1):
for j in range(i + 1, 0, -1):
if s[j] s[j - 1]:
s[j], s[j - 1] = s[j - 1], s[j]
for m in range(0, len(s)):
print(s[m])
示例代碼二:
1.第一層循環(huán)所有元素。
2.第二層也循環(huán)所有元素。
s = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
for i in range(0, len(s)):
for j in range(i, 0, -1):
if s[j] s[j - 1]:
s[j], s[j - 1] = s[j - 1], s[j]
for m in range(0, len(s)):
print(s[m])
以上所述是小編給大家介紹的python冒泡排序算法注意要點(diǎn),希望對(duì)大家有所幫助
python代碼和運(yùn)行結(jié)果如下:
可見成功將亂序數(shù)組A按升序輸出
附源碼鏈接:冒泡排序
#?-*-?coding:?utf-8?-*-
#py?3,?冒泡排序?qū)崿F(xiàn)
import?random?#導(dǎo)入隨機(jī)數(shù)模塊
arr=[]
n=10
for?i?in?range(n):
arr.append(random.randint(1,100))?#生成1--100隨機(jī)整數(shù),構(gòu)成一個(gè)含有n=10個(gè)元素的數(shù)列arr
for?i?in?range(n-1):#冒泡排序
for?j?in?range(i+1,n):
if?arr[j]arr[i]:
arr[i],arr[j]=arr[j],arr[i]?#兩數(shù)交換
for?i?in?range(n):
print(arr[i],end='?')?#輸出結(jié)果
冒泡排序(Bubble Sort)也是一種簡(jiǎn)單直觀的排序算法。它重復(fù)地走訪過(guò)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過(guò)來(lái)。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說(shuō)該數(shù)列已經(jīng)排序完成。這個(gè)算法的名字由來(lái)是因?yàn)樵叫〉脑貢?huì)經(jīng)由交換慢慢"浮"到數(shù)列的頂端。
def bubbleSort(arr):
n = len(arr)
# 遍歷所有數(shù)組元素
for i in range(n):
# Last i elements are already in place
for j in range(0, n-i-1):
if arr[j] arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
arr = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(arr)
print ("排序后的數(shù)組:")
for i in range(len(arr)):
print ("%d" %arr[i])