1. 程式人生 > 其它 >c語言四種排序演算法完整程式_【C語言】8.冒泡法排序程式設計

c語言四種排序演算法完整程式_【C語言】8.冒泡法排序程式設計

技術標籤:c語言四種排序演算法完整程式

氣泡排序(Bubble Sort)是一種簡單直觀的排序演算法。

898698b5471fa42e2217a756298248f7.gif

1. 演算法步驟

  • 將待排序的N個數依次進行相鄰兩個數的比較,如果不符合由小到大的順序要求(即前小後大),則交換兩個數的位置,否則不交換。

  • 待N個數經過N-1次相鄰兩數比較後,最大的數就交換到了最後的位置,這個數就算排好位了,這稱為一趟排序,即一趟排序可以將一個數排到它該放置的位置。

  • 第2趟排序時,只需對除最大數外餘下的N-1個數按第1趟的排序方法進行操作,即可將第2個數排到該排的位置(倒數第二個位置)。

  • 依此類推,對N個數進行N-1趟排序後,則所有數就有序了。

  • 以上排法是升序排序,若降序排序則交換數的條件是相鄰兩個數中前面的數小於後面的數。

898698b5471fa42e2217a756298248f7.gif

2.動畫演示

5dca3560ec970d54d0e2e935d1ab34e0.gif

898698b5471fa42e2217a756298248f7.gif

3.C語言實現

//參考程式碼#include#define N 8int main(){   int a[N];  int i,j,t;  printf("請輸入%d個整數:\n",N);  for(i=0;i    scanf("%d",&a[i]);  for(j=0;j-1;j++)    for(i=0;i-1-j;i++)      if(a[i]>a[i+1])      {        t=a[i];        a[i]=a[i+1];        a[i+1]=t;      }    printf("排序後的結果:\n");  for(i=0;i    printf("%4d",a[i]);  printf("\n");      }