本帖最後由 xu3u4rmp4 於 2010-6-28 19:17 編輯
這是我在知識家看到的程式
我先貼完整的
他是氣泡排序法
#include <reg51.h>
unsigned char a[]={31,30,27,26,25,28,24,
23,22,21,29,20,17,16,15,18,
14,13,12,11,19,10,7,6,5,8,4,3,2,1,9,0};
void main(void)
{
char j=0,j1=0,temp;
for ( j1=0; j1<31; j1 ) //j1迴圈的連續31所有數排好
{
for( j=0; j<31; j ) //j迴圈連續31次就可以最大數移到下面,
{
if (a[j]> a[j1]) //相互做比較,a[j]大於a[j 1]將兩資料互換
{
temp =a[j1];
a[j1]= a[j];
a[j]= temp;
}
}
}
}
把數小到大排好有很多方法,最為簡易泡沫排序法, 所謂泡沫排序是上下兩相鄰的資料相互做比較,
如果上比較大將兩資料互換,依次由上往下比,大的會往下移,由上到下一次就可最大數移到下面,上到
下連續31所有數排好O |