python從低到高排序 經典氣泡排序 由低到高

2021-10-11 20:16:01 字數 2633 閱讀 8402

氣泡排序:

據說是八大排序中的其一,通俗的意思就是講,在一組資料中,相鄰元素依次比較大小,最大的放後面,最小的冒上來

我這裡簡單畫了乙個圖,不算流程,但裡面有分析過程

1、確定第1個數的位置:依次與其它資料相比:

--第1次和2相比,比2大,則右移1位到2的位置上, 這時候,1在2位置上了

--再與3相比,如果比3大,再向右移1位到3的位置上,不大則不用移動,這時候1在3位置上

--再與4相比,如果比4大,再向右移動1位到4的位置上,不大則不用移動,這時候1在4位置上

--再與5相比,如果比5大,再向右移動1位到5的位置上,不大則不用移動,這時候1在5位置上

經過以上一輪4次的比較,我們可以確定1的位置。

下圖是流程圖:

2、確定第2個數的位置:依次與除1以外的其它資料相比(因為第1輪比較1的時候,已經比過了,已經確定了1的位置,所以這以後都沒必要再跟1比了):

--第1次和3相比,比3大,則右移1位到3的位置上, 這時候,2在3位置上了,不大則不用移動

--再與4相比,如果比4大,再向右移1位到4的位置上,這時候2在4位置上,不大則不用移動

--再與5相比,如果比5大,再向右移動1位到5的位置上,這時候1在5位置上,不大則不用移動

經過以上一輪3次的比較,我們可以確定2的位置。

3、確定第3個數的位置:依次與除1、2以外的其它資料相比(因為第1輪、第2輪比較1、2的時候,已經比過了,已經確定了1、2的位置,所以這以後都沒必要再跟1、2比了):

--第1次和4相比,比4大,則右移1位到4的位置上, 這時候,3在4位置上了,不大則不用移動

--再與5相比,如果比5大,再向右移1位到5的位置上,這時候2在5位置上,不大則不用移動

經過以上一輪2次的比較,我們可以確定3的位置。

4、確定第4個數的位置:依次與除1、2、3以外的其它資料相比(因為第1輪、第2輪、第3輪比較1、2、3的時候,已經比過了,已經確定了1、2、3的位置,所以這以後都沒必要再跟1、2、3比了):

--第1次和5相比,比5大,則右移1位到5的位置上, 這時候,4在5位置上了,不大則不用移動

經過以上一輪1次的比較,我們可以確定4的位置。

5、最後的5不用再比較了,因為已經確定了其它剩下的位置,第一輪都有與5比較過,所以其它4個坑佔了後,剩下的5你還有啥選擇呢。已經被固定了

1、首先我們就定5個數吧,那麼我們可以把這5個數放在乙個陣列裡。int nums=或int nums=new int,這裡怎麼用:開心就好!

2、要進行4輪的比較才能確定,這一定是個迴圈,固定次數的,我們用for吧。for(int i=0;i<4;i++),當然你用for(int i=1;i<=4;i++)也行,不過陣列是從0開始的,所以習慣i從0開始,這樣也有利於看直接:陣列[i],不然還每次得:陣列[i-1]。4也就是:陣列.length-1

3、每一輪裡面要迴圈不同次數比較資料確定位置,那麼在第2步迴圈中,要再有乙個迴圈,這是多重迴圈,也叫潛逃迴圈

這個for迴圈,我們也要來分析一下,它的範圍:

第幾輪(我們定的是變數i)            (內層迴圈)次 變數j

1      對應陣列下標i是0            4        外層迴圈第1次,內層需要迴圈4次 =5-i-1

2      對應陣列下標i是1          3        外層迴圈第2次,內層需要迴圈3次  =5-i-1

3      對應陣列下標i是2            2        外層迴圈第3次,內層需要迴圈2次  =5-i-1

4      對應陣列下標i是3            1        外層迴圈第4次,內層需要迴圈1次  =5-i-1

內層for迴圈,我們設定變數j,for(int j=0;j< ;j++),j

雙重迴圈的原理是:外層迴圈1次,內層迴圈1輪(遍歷),上表已經很清晰的標示出了j每輪迴圈裡面要執行的次數,但因為我們是i是從0開始的,所以j的範圍應該是5-i-1,也就是:陣列.length-1-i

4、在內層迴圈中還有乙個條件,即前一位比後一位大的話,進行挪位,不大則不變位置,如果涉及挪位的時候,我們需要乙個變數來倒騰一下交換要挪位的2個值。

def max_min(*args):

temp = 0

dic = {}

li= list(args)

for i in range(len(li)-1):

for j in range(len(li)-1-i):

if li[j] >= li[j+1]:

temp = li[j]

li[j] = li[j+1]

li[j+1] = temp

print(li)

print(li)

dic['max'] = li[-1]

dic['min'] = li[0]

return dic

print(max_min(23,12,34,2,67))

d:\pycharm_data\day03\venv\scripts\python.exe d:/pycharm_data/day03/test.py

[12, 23, 2, 34, 67]

[12, 2, 23, 34, 67]

[2, 12, 23, 34, 67]

[2, 12, 23, 34, 67]

[2, 12, 23, 34, 67]

python列表從低到高 Python列表高階

在 python 中,列表是一種有序的集合,可以儲存 0 到多個不同類似的元素。定義乙個列表,我們需要用中括號把裡面的元素包裹起來,並且用 英文逗號分隔。在列表元素的查詢上,我們可以通過索引來獲取我們想要的元素。列表的索引分為正向索引和反向索引。正向索引從0開始,反向索引從 1開始。列表的修改上,我...

經典氣泡排序 由低到高

氣泡排序 據說是八大排序中的其一,通俗的意思就是講,在一組資料中,相鄰元素依次比較大小,最大的放後面,最小的冒上來 我這裡簡單畫了乙個圖,不算流程,但裡面有分析過程 1 確定第1個數的位置 依次與其它資料相比 第1次和2相比,比2大,則右移1位到2的位置上,這時候,1在2位置上了 再與3相比,如果比...

經典氣泡排序 由低到高

氣泡排序 據說是八大排序中的其一,通俗的意思就是講,在一組資料中,相鄰元素依次比較大小,最大的放後面,最小的冒上來 我這裡簡單畫了乙個圖,不算流程,但裡面有分析過程 1 確定第1個數的位置 依次與其它資料相比 第1次和2相比,比2大,則右移1位到2的位置上,這時候,1在2位置上了 再與3相比,如果比...