氣泡排序小結

2021-09-30 12:23:12 字數 1315 閱讀 6215

氣泡排序,原理想起來並不難,核心便是四五行**,若是用python,更是簡約。然而,自己寫起來,仍然並不順手,總是會糾結於下標的游動。

今天便是如此,這不是我第一次寫冒泡演算法了,之前用python寫過一次,**如下:

def

bubble_sort

(list):

dist=

len(

list

)for j in

range(0

,dist)

:for i in

range(0

,dist-1)

:# 交換

iflist

[i]>

list

[i+1]:

t=list

[i]list

[i]=

list

[i+1

]list

[i+1]=t

return

list

換一種寫法是:

def

bubble_sort

(arr)

: size =

len(arr)

for i in

range(0

, size)

:for j in

range(0

, size-1)

:if arr[i]

> arr[i+1]

: arr[i]

, arr[i+1]

= arr[i+1]

, arr[i]

# 交換位置

return arr

以下用c**實現的:

#include

intmain()

//bubble sort

//n-1 times

for(

int i =

0; i < n-

1; i++)}

}for

(int k =

0; k < n; k++

)//printf("\n");

}return0;

}

20181223 update:

python版本的和c版本的有個實現上的小區別,只是作為對比,其實可以按照c版本的來寫比較合理,即內層迴圈測次數,上面的**是按照公升序排列,每次選擇的是當前的最大值,所以從後往前,最大,次大…排列,所以內層迴圈次數應當是size - i - 1,逐漸減小。

end.

氣泡排序演算法小結

原理 比較兩個相鄰的元素,將值大的元素交換至右端。思路 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一趟步驟,直至全部排序完...

氣泡排序,選擇排序,二分查詢小結

我們知道,排序方法很多 氣泡排序,選擇排序,快速排序,希爾排序。今天,我將就我的了解來作出介紹 氣泡排序 氣泡排序是一種較為簡單的排序方法,它主要思路是遍歷所有的資料,一次比較兩個數,如果它們的順序是我們所要求的,就不變化 如果它們的大小順序和我們的要求相左,則進行交換。重複遍歷,直到沒有資料需要交...

氣泡排序 排序 氣泡排序

既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...