Python算法之冒泡排序001

這是我學習python后學習的第一個排序算法热鞍。

排序需要關注兩個維度,一是時間復雜度岗钩,二是穩(wěn)定性。

冒泡排序的時間復雜度為O(n^2)肖油;屬于穩(wěn)定排序算法兼吓。

冒泡排序原理:有一個無序數組(A,下標為i,元素個數為n)森枪,要對無需數組進行排序视搏。第一輪比較:第一步開始進行相鄰兩個元素的對比,若第1個位于第2位县袱,交換他們的位置浑娜;第二步,用剛才比較大的那個數字和第3位數比較显拳,誰大誰就在第3位棚愤。。杂数。以此類推宛畦,直至最大的數放在最后一位。第二輪比較:重復第一輪的方法揍移,直至第n-1輪(即len(A[i])-1)輪比較次和,此時我們便得到了一個有序的數組。

優(yōu)化方案:從上邊的原理可以看出那伐,冒泡排序每輪比較都需要進行n-1次兩兩比較踏施;但是我們可以知道石蔗,每做完一輪比較,最后一個位置的數就已經定下來了畅形,所以养距,我們可以在后續(xù)每輪的比較中,減少一次兩兩比較日熬。

好啦棍厌,準備工作已說完,python源碼現(xiàn)身:

# coding:utf-8

# 冒泡排序

defpaopao(A):

? ? print A

for i in range(len(A)-1,0,-1): ? ?# 外層循環(huán)是要比較的次數

? ? print i

? ? for j in range(i): ? ?# 內層循環(huán)是兩兩比較,交換

? ? ? ? if A[j] > A[j+1]:

? ? ? ? ? ? A[j],A[j+1] = A[j+1],A[j]# python特有的交換兩個元素的公式

? ? ? ? ? ? # max1 = A[j]

? ? ? ? ? ? # A[j] = A[j+1]

? ? ? ? ? ? # A[j+1] = max1

? ? ? ? print A

if__name__ =="__main__":

? ? s = [8,6,7,4,2,3,5]

? ? # 打印原數組

? ? print s

? ? # 打印排序后的數組

? ? paopao(s)

? ? print s


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末竖席,一起剝皮案震驚了整個濱河市耘纱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毕荐,老刑警劉巖束析,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異憎亚,居然都是意外死亡员寇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門第美,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丁恭,“玉大人,你說我怎么就攤上這事斋日。” “怎么了墓陈?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵恶守,是天一觀的道長。 經常有香客問我贡必,道長兔港,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任仔拟,我火速辦了婚禮衫樊,結果婚禮上,老公的妹妹穿的比我還像新娘利花。我一直安慰自己科侈,他們只是感情好销睁,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布奉呛。 她就那樣靜靜地躺著懈叹,像睡著了一般淑仆。 火紅的嫁衣襯著肌膚如雪钠至。 梳的紋絲不亂的頭發(fā)上瓣赂,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天嗓化,我揣著相機與錄音撩鹿,去河邊找鬼。 笑死盟蚣,一個胖子當著我的面吹牛黍析,可吹牛的內容都是我干的。 我是一名探鬼主播屎开,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼阐枣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了牍戚?” 一聲冷哼從身側響起侮繁,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎如孝,沒想到半個月后宪哩,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡第晰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年锁孟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茁瘦。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡品抽,死狀恐怖,靈堂內的尸體忽然破棺而出甜熔,到底是詐尸還是另有隱情圆恤,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布腔稀,位于F島的核電站盆昙,受9級特大地震影響,放射性物質發(fā)生泄漏焊虏。R本人自食惡果不足惜淡喜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诵闭。 院中可真熱鬧炼团,春花似錦、人聲如沸疏尿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽润歉。三九已至模狭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間踩衩,已是汗流浹背嚼鹉。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工贩汉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锚赤。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓匹舞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親线脚。 傳聞我的和親對象是個殘疾皇子赐稽,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內容

  • 總結一下常見的排序算法。 排序分內排序和外排序浑侥。內排序:指在排序期間數據對象全部存放在內存的排序姊舵。外排序:指在排序...
    jiangliang閱讀 1,342評論 0 1
  • 概述:排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序寓落,而外部排序是因排序的數據很大括丁,一次不能容納全部...
    每天刷兩次牙閱讀 3,730評論 0 15
  • 概述 排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序伶选,而外部排序是因排序的數據很大史飞,一次不能容納全部...
    蟻前閱讀 5,183評論 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,253評論 0 2
  • dsfsaf
    hozdanny閱讀 89評論 0 1