作者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