冒泡排序

寫在大一,大佬勿噴
問題描述 :輸入十個數字,用冒泡排序法,從小到大依次排序

第一次見到這種排序的題目,有點懵。所以簡化爲 5個數字排序
寫出例子

從小到大
8 5 4 6 3

第一趟循環
5 4 6 3 8

第二遍排序
5 4 3 6 8

第三趟排序
4 3 5 6 8

第四趟排序
3 4 5 6 8
可見輸入n 個數字 排序 n-1次
而每趟排序都進行了至少一次的比較

因此,我們需要兩個循環,才能完成10個數字的比較

下面是源碼:
#include<stdio.h>
int main()
{
int i,j,t,a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章