排序演算法之氣泡排序

2022-05-21 17:12:11 字數 1131 閱讀 1725

題目傳送門

1/*2

bubblesort_2(),_3()為優化版

3用zstu3539題目來驗證演算法的正確性4*/

5 #include 6 #include 7 #include 8 #include 9 #include 10

using

namespace

std;

1112

const

int maxn = 1000000 + 10;13

const

int inf = 0x3f3f3f3f;14

inta[maxn];

1516

void bubblesort(int *a, int

n)1724}

25}2627

void bubblesort_2(int *a, int n) //

若不進行交換,已排好序,演算法結束

2840}41

if (pos == 0) break;42

}43}44

45void bubblesort_3(int *a, int n) //

一次冒泡得到最大值和最小值,排序次數幾乎減少一半

4654 --r;

55for (int i=r; i>l; --i) //

反向冒泡

5659 ++l;60}

61}6263

int main(void)64

7677

bubblesort (a, n);

78//

bubblesort_2 (a, n);

79//

bubblesort_3 (a, n);

8081

bool flag = true;82

for (int i=1; i<=n; ++i)

8389

else

90 printf ("%d"

, a[i]);91}

92 puts (""

);93}94

95return0;

96 }

排序演算法之氣泡排序

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

排序演算法之氣泡排序

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

排序演算法之氣泡排序

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