C和Python實現冒泡法排序

2022-03-21 20:02:24 字數 897 閱讀 3029

首先我們看冒泡法排序的原理,假設有乙個包含6個數字的陣列

其思路為:每次將相鄰兩個數比較,將小的調到前面,如果有6個數:8,7,5,4,2,0。第一次先將最前面的兩個數8和7對調(看下圖)。第二次將第二個數和第三個數(8和5)對調.....如此總計進行了5次,得到7-5-4-2-0-8的順序,可以看到:最大的數8已經沉底,成為最下面的乙個數,而小的數上公升。經過第一輪(5次比較)後,得到了最大的數9。

然後進行第二輪的比較(見下圖),對餘下的7,5,4,2,0進行新一輪的比較,以便使次大的數沉底。經過這一輪4次的比較與交換,得到次大的數7。

按照此規律進行下去,可以推知6個數需要比較5輪,其中第一輪需要比較5次,第二輪需要比較4次....第五輪只需比較一次。

如果有n個數,則需要比較n-1輪,在第一輪比較重要進行n-1次兩兩比較,在第j輪中要進行n-j次的兩兩比較。

這種如水底的氣泡逐步冒出水面一樣,故稱之為冒泡法。

c語言**如下:

#includeint

main()

printf(

"the sorted numbers is:");

for(i=0;i<=9;i++)

printf(

"%d\t

",a[i]);

return0;

}

python**如下:

def

mppx(arr):

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

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

if arr[j]>arr[j+1]:

temp=arr[j]

arr[j]=arr[j+1]

arr[j+1]=temp

return arr

冒泡法排序C 實現

看一下 include using namespace std function count the number of count variable void printf int a,int count cout endl void bubblesort int a,int count cout...

Python學習 實現《氣泡排序法》

演算法思想 step1 將第乙個資料和第二個進行比較,若第乙個資料大於第二的資料,則將第乙個資料 大數 和第二個資料 小數 交換位置。再將第二個資料和第三個比較,若第二個資料大於第三個資料,交換資料。依次類推,直到最大的數排到最後的位置上。第1個迴圈結束。step2 將第乙個資料和第二個進行比較,若...

選擇 氣泡排序法C 實現

一開始把選擇排序法理解錯了。於是寫出如下 include using namespace std void comp int ptr1,int ptr2 int main int p a cout 排序前 endl for int i 0 i 10 i cout a i cout endl for ...