日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python冒泡算法_python_冒泡算法

發(fā)布時(shí)間:2024/7/5 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python冒泡算法_python_冒泡算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是冒泡算法?

-- 像魚吐泡泡一樣,每次都是向上冒出一個(gè)水泡

如何邏輯整理?

-- 先拿第一個(gè)值和剩下的值,一一比較,必能找到最大的或者最小的

-- 比較過程中,第一個(gè)值小于剩下的某個(gè)值,交換位置,依次比較到最后,最大的一個(gè)肯定在最前面,找最大

-- 比較過程中,第一個(gè)值大于剩下的某個(gè)值,交換位置,依次比較到最后,最小的一個(gè)肯定在最前面,找最小

-- 每次找出最大的值或者最小的值,比較循環(huán)就減少一次,當(dāng)只剩下一個(gè)元素時(shí)候,就結(jié)束了

從第幾個(gè)值來看,按第幾個(gè)值比較,忽略列表本身的索引值

# !/usr/bin/python3

def buble(fish):

'''冒泡算法'''

for j in range(1, len(fish)): # 從第一個(gè)開始根后面的比較

for i in range(len(fish)-j): # 每遍歷找到最大或最小的放在第一位,然后再次循環(huán)剩下的元素

if fish[i] > fish[i+1]: # 如果第i個(gè)元素大i+1,互換位置,相當(dāng)于找到最小的放最前面

# temp = fish[i+1]

# fish[i+1] = fish[i]

# fish[i] = temp

fish[i], fish[i+1] = fish[i+1], fish[i] # 位置互換

return fish

if __name__ == '__main__':

fish = [600, 4, 55, 42, 11, 5, 33, 6, 8, 20, 10, 66, 99, 77, 22]

result = buble(fish)

print(result)

利用列表本身的索引值進(jìn)行比較,不更好更容易理解么?

# !/usr/bin/python3

def buble(fish):

'''冒泡算法'''

for j in range(len(fish)): # 從列表0索引開始,最后的元素就是一個(gè),到最后一個(gè)元素,列表已經(jīng)排好,無需自己比較自己

for i in range(j + 1, len(fish)): # j位置都是已經(jīng)排好了,從j+1開始比較

if fish[j] < fish[i]: # 大于比較,交互位置,取最小的在前面

# temp = list_1[i+1]

# list_1[i+1] = list_1[i]

# list_1[i] = temp

fish[j], fish[i] = fish[i], fish[j] # 交互位置,相當(dāng)于以上三句話

return fish

if __name__ == '__main__':

fish = [600, 4, 55, 42, 11, 5, 33, 6, 8, 20, 10, 66, 99, 77, 22]

result = buble(fish)

print(result)

記住一句話,比最大,交互位置,取最小的值,比最小,交互位置,取最大值

大于的時(shí)候,交互位置,實(shí)際上是把小的值,推到了列表最前面,

小于的時(shí)候,把大的值,推到最前面,這個(gè)才是冒泡算法最讓人困惑的地方

總結(jié)

以上是生活随笔為你收集整理的python冒泡算法_python_冒泡算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。