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