排序演算法之氣泡排序

2021-10-19 15:01:55 字數 1313 閱讀 8724

對arr陣列的元素進行公升序排序

給定乙個陣列

int arr=

如何進行排序呢?

兩兩相鄰元素進行比較,數值大的元素排到後面。

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,

最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

一趟氣泡排序:

如果第乙個元素比第二個元素大,那麼兩兩進行交換,重複此過程。

arr[j]如果大於arr[j+1],那麼兩兩進行交換,重複至不能交換。

int j =0;

for(j =

0; j < sz-i-

1; j++

)//兩兩相鄰元素進行交換

最終10排到了最後面,一趟完成。

共有sz = sizeof(arr) / sizeof(arr[0]) = 10個元素,

第一趟氣泡排序需要9次

第二趟氣泡排序需要8次

…sz 個元素最多需要i = sz - 1趟氣泡排序,每一趟氣泡排序最多需要 j= sz - i 次兩兩排序

//氣泡排序

#include

void

bubble_sort

(int

* arr,

int sz)

//兩兩相鄰元素進行交換}}

}//對arr進行排序,排成公升序

intmain()

;//隨意給定乙個陣列

int sz =

sizeof

(arr)

/sizeof

(arr[0]

);//確定氣泡排序的趟數

bubble_sort

(arr, sz)

;//進行氣泡排序

//arr是陣列,傳參時傳的是arr首元素的位址

for(i =

0; i < sz; i++

)//列印排序過後陣列的結果

return0;

}

執行結果

成功實現!!!

謝謝欣賞!!!

排序演算法之氣泡排序

參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...

排序演算法之氣泡排序

對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...

排序演算法之氣泡排序

氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...