#include<stdio.h> int main() { int a[10],i,j,k,l,t; for(i=0;i<10;i++) { scanf("%d",&a[i]); } //①由輸入設備抓取10個數,填充數組。 for(j=1;j<=10;j++) { for(k=0;k<10-j;k++) { if(a[k]>a[k+1]) { t=a[k]; a[k]=a[k+1]; a[k+1]=t; } } } //②冒泡算法的核心,由嵌套的兩層循環實現。 for(l=0;l<9;l++) { printf("%d ",a[l]); } printf("%d",a[9]); //③排序完成的數據輸出。 return 0; }
先祭出代碼。算法
分析:數組
開始分別定義了a[10],i,j,k,l,t幾個變量,若是要給它們分分類的話,那麼i,l爲一組,他們分別爲循環的控制變量來實現數組中數據的輸入與輸出。j,k爲一組,他們來實現冒泡算法的核心表達。t爲中間變量,爲交換相鄰兩元素的跳板。ide
在此①③不做贅述,着重分析理解②。spa