作者markoo (上行下笑阿..)
看板NCTU-STAT98G
標題0730 程式 EX 2
時間Sun Aug 2 01:01:16 2009
EX2: 將X[10]從小到大排列, 並印出相對應Y[10]的英文內容
之前介紹用兩個for迴圈來做排序法
這邊嘗試用while+一個for迴圈來改寫
這邊大家可以想像一下 用兩個for迴圈跟下面while+一個for迴圈
哪個會比較快?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int i,j,tru=1,temp1,temp2;
int X[10]={9,1,3,5,2,11,6,8,5,4};
char Y[10]={'O','Y','U','R','O','D','G','O','E','A'};
while (tru!=0)
{
tru=0;
for (i=0;i<9;i++)
{
if (X[i]>X[i+1])
{
temp1=X[i];
X[i]=X[i+1];
X[i+1]=temp1;
temp2=Y[i];
Y[i]=Y[i+1];
Y[i+1]=temp2;
tru=1;
}
if (tru==1) break;
}
}
for (i=0;i<10;i++) printf("%d",X[i]);
printf("\n");
for (i=0;i<10;i++) printf(" %c",Y[i]);
printf("\n");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.48.157