若是要對含有n個數的序列進行升序排列,冒泡排序算法步驟是:算法
一、從存放序列的數組中的第一個元素開始到最後一個元素。依次對相鄰兩數進行比較,若前者大後者小,則交換兩數的位置。編程
二、第1趟結束後,最大數就存放到數組的最後一個元素裏了,而後從第一個元素開始到倒數第二個元素,依次對相鄰兩數進行比較,若前者大後者小,則交換兩數的位置;數組
三、反覆步驟1 n-1趟,每趟比前一趟少比較一次。就能夠完畢所求。ide
例一、隨機產生10個100之內的數,將其用冒泡法按升序排列後輸出。spa
編程思路:用最後一個數與前一個數比較,若比前一個數小
則交換位置。而後再與前一個數比較,若比前一個數小再交換
位置,知道比前一個數大或者已經在最前面!如此循環8次就可以排好循序!blog
#include <stdio.h> #include <stdlib.h> #define n 10 int main(void) { int a[n],i,j,t; printf("隨機產生10個100之內的數:\n"); for(i=0;i<n;i++) { a[i] = rand()%100; printf("%d\n",a[i]); } printf("輸出:\n"); for(j=1;j<=n-1;j++) { /*n個數處理n-1趟*/ for(i=0;i<=n-1-j;i++) { /*每趟比前一趟少比較一次*/ if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } } for(i=0;i<n;i++) { printf("%d\n",a[i]); } return 0 ; }
執行結果:排序