C語音學習(三)氣泡排序和選擇排序

2021-08-21 18:17:15 字數 1611 閱讀 4899

氣泡排序的程式如下:

1 #include 2 int main()

3 ;5 int len = sizeof(a) / sizeof(int);

6 7 int i,j;

8 for(i = 0;i < len-1;i++)

9

18 }

19 for(j = 0;j < 10;j++)

20

23 printf("\n");

24 25 }

26 return 0;

27 }

氣泡排序的原理是:

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

對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

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

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

選擇排序的程式如下:

#include 2 

3 int main()

4 ;6 int len = sizeof(a) / sizeof(int);

7 8 int i,j;

9 int min;

10 11 for(i = 0;i < len ;i++)

12

20 }

21 int t;

22 t = a[i];

23 a[i] = a[min];

24 a[min] = t;

25 if(i >= len / 2)

26

29 30 for(j =0;j < 10;j++)

31

34 printf("\n");

35 }

36 37

38 39 return 0;

40 }

選擇排序的原理是:

1.在陣列的所有元素中挑選出乙個最小的元素,將它與排在無序位第乙個的元素交換。

2.在挑選出最小的元素並放在第一位以後,繼續對剩下的元素進行挑選,挑選出除了第一位之外最小的元素。

3.重複1的操作,直到所有的元素按順序排好,列印出所有結果。

1     for(i = 0;i < len ;i++)

2

這一部分主要是對陣列下標進行判斷,一開始i=0,也就是認為a[0] = a[min]。下一步進行判斷,由於j=i+1,a【j】即代表a【i】的下一位,如果a【j】挑選出最小的元素後,如果a【i】=a【min】,則無需互換,如果a【i】!=a【min】,則將a【i】和a【min】互換位置,也就是執行下面的程式:

if(min != i)

重複上述步驟,直到按順序排好,列印出所有過程。

C 氣泡排序和選擇排序

氣泡排序 理論 從第乙個數開始,將相鄰的兩個數比較,第乙個數和第二個數比較.要是是從小到大的排序,要是後面的數比前面的大則交換兩個的位置,這樣第一輪比較基數後最大的數就到了最後面,接著進行第二趟的比較,比較到前面n 1個數,原理也是前面的那樣,大的往後面不停的排,直到比較到前面只剩下乙個數的時候,就...

氣泡排序和選擇排序 C 實現)

氣泡排序 從陣列的第乙個元素開始 arr 0 兩兩比較 arr n arr n 1 如果前面的數大於後面的數,則交換兩個元素的位置,把大的數往後移動。經過一輪比較後,最大的數會被交換到最後的位置 arr n 1 選擇排序 通過比較,選出每一輪中最值元素 最大或最小 然後把它和本輪中的第乙個元素進行交...

c語言 氣泡排序和選擇排序

氣泡排序將乙個列表中的兩個元素進行比較,並將最小的元素交換到頂部。兩個元素中較小的會冒到頂部,而較大的會沉到底部,該過程將被重複執行,直到所有元素都被排序。氣泡排序示意圖 以如圖所示的氣泡排序為例,每次比較相鄰的兩個值,值小的交換到前面,每輪結束後值最大的數交換到了最後。第一輪需要比較4次 第二輪需...