1. 程式人生 > 其它 >利用C語言將混亂數字排序(即氣泡排序法)(含思路)

利用C語言將混亂數字排序(即氣泡排序法)(含思路)

大一C語言 你沒學過嗎 這篇可以稱的上入門級別的c語言了 當然還有水仙花數,氣泡排序等經典的C語言程式 後面也會逐一更新 盡情期待喔~~~

氣泡排序法的基本思路為:每次將相鄰的兩個數比較,將小的調在前面。舉個例子,如果有6個數:9,8,5,4,2,0。第一次先將最前面的兩個數9和8對調。第二次將第2個數和第3個數對調(9和5)······如此共進行5次得到8,5,4,2,0,9的順序,可以看到:最大的數9已經沉到了最底下成為了最下面的一個數,而小的數“上升”。


然後進行第二輪比較,對餘下的5個數進行氣泡排序,然後這五個數中最大的數8沉到了最底下。如此6個數進行5趟排序,才能使6個數按大小順序排列。第一趟中要進行兩個數之間的比較共5次,第二趟中要比較4次······第五趟中比較一次。即如果有n個數,則要進行n-1趟比較,第一次比較中需要進行n-1次兩兩比較,第二趟需要進行n-2次,第j次需要進行n-j次兩兩比較。

N個數字要排序完成,總共進行N-1趟排序,每i趟的排序次數為(N-i)次,所以可以用雙重迴圈語句,外層控制迴圈多少趟,內層控制每一趟的迴圈次數.

Tip:

  1. 經實測輸入#define _CRT_SECURE_NO_WARNINGS 1 後scanf不用再改為scanf_s
  2. #define _CRT_SECURE_NO_WARNINGS 1 // 預編時處理一下,加個巨集而已,讓其忽略安全檢測
  3. int temp, i, j; // i是陣列下標,j是比較次數
#define _CRT_SECURE_NO_WARNINGS 1 
#include <stdio.h>

int main() {
    
int sort[6]; int temp, i, j; printf("請輸入6個數字:\n"); for (i = 0; i < 6; i++) { scanf("%d", &sort[i]); } printf("\n"); for (j = 0; j < 5; j++) { //6個數字總共排5趟 for (i = 0; i < 5 - j; i++) //
每一趟交換5-j次 if (sort[i] > sort[i + 1]) { temp = sort[i]; sort[i] = sort[i + 1]; sort[i + 1] = temp; //找出兩個數中最小的的交換 } } printf("排序之後的:\n"); for (i = 0; i < 6; i++) printf("%d", sort[i]); return 0; }

運算結果如下:

有想看什麼程式的 可以評論喔~~~

阿婆主的粉絲少肯定會回的啦