1.有10個(gè)地區(qū)的面積,要求他們按從小到大的順序排列打洼。
?設(shè)計(jì)思路:
這種問題稱為排序(sort)龄糊。
排序有兩種;
1.升序,從小到大排列
2.降序拟蜻,從大到小排列绎签。
排序有很多種方法。是一種基本的酝锅,很重要的算法诡必。本例采用:冒泡法排序(又稱起泡法排序)。
“冒泡法排序”的設(shè)計(jì)思路是:每次將相鄰兩個(gè)數(shù)比較搔扁,將小的調(diào)到前頭爸舒。
如果有n個(gè)數(shù),則要進(jìn)行n-1趟比較稿蹲。在第一趟比較中要進(jìn)行n-1次兩兩比較扭勉,在第n趟比較中要進(jìn)行n-j次兩兩比較。
代碼:
#include <stdio.h>
int main()
{
? int i,j,t;
? int a[10];
? printf("input 10 numbers: \n");
? for(i=0;i<10;i++)
? scanf("%d",&a[i]);
? printf("\n");
? for(j=0;j<9;j++) //進(jìn)行9次循環(huán)苛聘,實(shí)現(xiàn)9趟比較
for(i=0;i<9-j;i++) //在每一趟中進(jìn)行9-j次比較
if(a[i]>a[i+1]) //相鄰兩個(gè)數(shù)比較
{
? t=a[i];
? a[i]=a[i+1];
? ? ? ? ? a[i+1]=t;
}
printf("the sorted numbers: \n"); //輸出
for(i=0;i<10;i++)
printf("%d",a[i]);
return 0;
}
結(jié)果展示: