冒泡法5 4 3 2 1
例如,以上五個數字按降序排列。
從前到後,相鄰的兩個較大。如果前者比後者大,就把它們放在壹起。
轉置,如果5大於4,轉置5和4得到45321。
5大於3,5和3換位得到43521,以此類推。
43215這將最大的數字移到後面。
然後不看5,剩下4321,再用上面的方法把4移動到底。
得到32145。不看45,剩下的321移動3到。
最後等等。
最終得到12345。
這就是冒泡法,這是計算機編程排序中最簡單快捷的方法。
除了這次意外,我還會寫很多排序方法,但效率都不如冒泡法。
至於為什麽叫冒泡法,妳把這些圖放上去看看。
1
2
三
四
五
將最大的數字5視為最大的泡沫,浮到頂部,然後4再次浮上來,以此類推。
得到
五
四
三
2
1
所以形象的稱為冒泡法。
——————————————————————————————————
以下是C語言中十個數冒泡排序的代碼。
# include & ltstdio.h & gt
# include & ltconio.h & gt
int main(void)
{
長數組【9】,
box = 0L
int i1=0,
I2 = 0;
for(I 1 = 0;I 1 & lt;9;i1++)
array【I 1】= 0;
Printf(“輸入數組元素:\ n“);
for(I 1 = 0;I 1 & lt;=9;i1++)
{
printf(“% 3d & gt,i1+1);
scanf(“% d“,& amparray【I 1】);
}
for(I 1 = 0;I 1 & lt;=9;i1++)
for(I2 = 0;i2 & lt= 9-i1;i2++)
{
if(array【I2】& lt;array【I2+1】)
{
box = array【I2+1】;
array【I2+1】= array【I2】;
array【I2】= box;
}
}
printf(“\ n排序後:\ n“);
for(I 1 = 0;I 1 & lt;=9;i1++)
printf(“% 3d & gt;%d\n“,i1+1,array【I 1】);
getch();
返回0;
}