2013年8月21日 星期三
交換排序
交換排序
由第一個開始,與後項比較大小,若比後項大,則與後項交換位置,否則不動。
Code:
#include <stdio.h>
int main()
{
int r[10]={4,7,24,1,9,47,22,31,6,10};//先設10個數字
int p,i,k,now,count=0;
for(p=0;p<10;p++)//迴圈從r[0]開始執行到r[9]
{
for(i=0;i<10;i++)//判斷是否後項都大於前項
if(r[i+1]>r[i])
count++;
if(count==9)
break;
else
{
for(i=1;i<10;i++)// 執行9次
{
for(k=i-1;k>=0;k--)//從 i-1 到 0
if(r[k]>r[i])//i-1 > i
{
now=r[i];//now(null) = i(original)
r[i]=r[k];
r[k]=now;//i-1(new) = i(original)
}
else
break;
}
}
}
for(i=0;i<10;i++)
printf("%d\t", r[i]);// 印出 1 4 6 7 9 10 22 24 31 47
}
參考資料:排序演算法
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言