|
//一串无序的号码,数量不确定,有没有命令可以把它们按从小到大的顺序排列?比如:
// 8898776 3567 58987 886 323156 4868 ......
//SORTNUM RetVar d1 d2 ...
_SUB SORTNUM
ENVI^ ForceLOcal=1
SET &num=%#
SET &retNm=%~1
SET &I=2
LOOP #%I%<%Num%, @TEAM ^SET &v[%I%]=%%~%I%| @CALC #&I=%I%+1
//冒泡排序
SET &I=2
LOOP #%I%<%Num%,
{*
CALC #&&J=%I% + 1
LOOP #%J%<%Num%,
{*
^IFEX $%%v[%J%]%%<%%v[%I%]%%, @TEAM SET &t=%%v[%I%]%%| SET v[%I%]=%%v[%J%]%%| SET v[%J%]=%%t%%
CALC #&J=%J% + 1
}
CALC #&I=%I% + 1
}
SET &I=2
LOOP #%I%<%Num%, TEAM ^SET ret=%ret% %%v[%I%]%%| CALC #&I=%I%+1
SET &ret=
SET &I=2
LOOP #%I%<%Num%, TEAM ^SET ret=%ret% %%v[%I%]%%| CALC #&I=%I%+1
ENVI-ret %retNm%=%ret%
_END
SORTNUM V 8898776 3567 58987 886 323156 4868
MESS. %V%
|
|
|