下面是使用python來實現氣泡排序的演算法,氣泡排序是基本演算法之一,也是我們在面試過程中經常遇到的乙個面試題,來考驗我們基本的**編寫能力,下面我們就用**的實現這個需求。
1、首先我們要思考的是如可將乙個順序混亂的列表,按照降序或者是公升序進行排列,其實就是進行比較,把數值大的排到後邊,把數值小的排到前面,不斷的進行比較,直到按照我們的意願進行排列為止。
2、我們首先取第乙個數值和第二個數值進行比較,誰大調換位置,否則保持原來的位置不變,都二次是第二個數值和第三個數值進行比較,同樣誰大誰往後調換位置,以此類推,這樣我們就能把數值最大的排到最後了
3、按照步驟2中的比較進行一輪又一輪的迴圈比較,這樣我們就能把倒數第二位大的數,第三位…都找出來了,這樣就排好序了,思路就是這樣,下面我們用**實現一下!
# 定義乙個無序的列表
list_info =[4
,3,7
,1,2
,6,9
,8,5
]# 建立乙個迴圈
for i in
range(1
,len
(list_info)):
# 每一次迴圈可以確定乙個數
for n in
range
(len
(list_info)
-i):
# 兩兩進行迴圈比較,數值大的往後排,-i:上面每次迴圈可以確定乙個數所以我們可以少比較一次
if list_info[n]
> list_info[n+1]
: list_info[n]
,list_info[n+1]
= list_info[n+1]
,list_info[n]
# 調換位置
print
(list_info)
# 列印結果
雖然這是**的量並不多,但是新手還是需要進行反覆的思考,理清裡邊的迴圈,和迴圈有的是從1開始的,有的是從0開始的,為什麼-i,這些對於新手來說也不是一眼能看出來裡邊的邏輯的。
內容略顯簡單,但是也是博主用心完成的,如果你覺得本文對你有用,可以點讚和收藏歐!
基本排序演算法 之一 氣泡排序
templatevoid bubblesort t arr,int len 未改進的氣泡排序,最好,最壞以及平均情況下的時間複雜度均為o n 2 排序過程可能在k k n 1 次外迴圈後已經達到有序狀態,但該演算法仍然會繼續比較相鄰元素,直到n 1次外迴圈結束。基於以上考慮,提出改進的氣泡排序演算法...
python爬蟲之一 基本架構
排程器 呼叫其他元件,並控制目標資料輸出 url管理器 儲存待爬取 已爬取url,要防止爬取重複的url 網頁解析器 解析html頁面中的文字資訊,獲取目標資料和新的url鏈結 2.2.1 功能 維護待爬取集合和已爬取集合 判斷得到的url是否已爬取 將新的url新增到待爬取集合 判斷待爬取集合是否...
python資料分析與演算法之一 基本概念
如何形象化的理解演算法?意義 什麼是演算法分析?引例 a b c 1000 a 2 b 2 c 2 a,b,c均為自然數 求出a,b,c可能的組合?法一 for a in range 0,1001 for b in range 0,1001 for c in range 0,1001 if a b ...