排序算法圖解——冒泡

冒泡排序

這種排序方式是最容易理解的,主體思想就是:

指針重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因爲越大的元素會經由交換慢慢“浮”到數列的頂端,故名。

接下來我們來看下冒泡算法的過程

上圖是第一趟比較過程

冒泡排序一次只比較兩個數字,並且這兩個數字是相鄰的。

 

 

從圖上我們可以看到,原數組爲【9,1,7,5,3,8,4】。

第一次比較首先比較第0位和第一位,並且將結果大的數字往後移動,也就是交換。第0位是9, 第1 位是1,9>1,所以我們將大的數字往後移動。

同理,如果第0位<第1 位,我們就不進行交換。

之後我們在比較第1位和第2位的數字。將結果大的往後移動。

就這樣,通過n-1次比較後(n爲數組長度),我們就將最大的數字移到了數組的最末端。然後再繼續進行第二輪比較,找出第二大的數字,往後以此類推。

上圖爲七次比較過程

下面爲python3的代碼:

list1 = [9,1,7,5,3,8,4]
#下列方法是冒泡排序算法進行排序的

#len()是得到列表的長度函數
for i in range(len(list1)):
	for j in range(len(list1)-i-1):
		if list1[j]>list1[j+1]:
			temp=list1[j+1]
			list1[j+1]=list1[j]
			list1[j]=temp

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章