主题:排序问题????
hack119
[专家分:10] 发布于 2007-05-21 14:21:00
这是高手写的段代码,我把str再为1,66,3,55 这样程序就无法进行排序只要有个2个数就不能正常排序了
<%
str="1,6,3,4"'Request("InputName")'如STR="1,6,3,4"
dim Arrstr
Arrstr=split(Str,",")
for i=0 to ubound(Arrstr)-1
if Arrstr(i+1)>Arrstr(i) Then
temp=Arrstr(i+1)
Arrstr(i+1)=Arrstr(i)
Arrstr(i)=temp
End If
Next
for i=0 to ubound(Arrstr)
if a="" Then
a=Arrstr(i)
else
a=a&","&Arrstr(i)
end if
next
response.write(a)
%>
回复列表 (共5个回复)
沙发
wangsdong [专家分:21390] 发布于 2007-05-21 14:43:00
str="1,6,34,4"
arr=split(Str,",")
Dim t
For i=0 To UBound(arr)-1
For j=i+1 To UBound(arr)
If(CInt(arr(i))<CInt(arr(j))) Then
t=arr(i)
arr(i)=arr(j)
arr(j)=t
End If
next
Next
For i=0 To UBound(arr)
s=s&arr(i)&","
Next
response.write Left(s,Len(s)-1)
板凳
hack119 [专家分:10] 发布于 2007-05-21 15:17:00
程序执行的时候没问题。。但会显示
Microsoft VBScript 运行时错误 '800a0005'
无效的过程调用或参数: 'Left'
\wwwroot\123.asp, line 28
3 楼
wangsdong [专家分:21390] 发布于 2007-05-21 15:32:00
就直接
response.write s
4 楼
hack119 [专家分:10] 发布于 2007-05-21 19:08:00
可这样会把后面的,号也输出
5 楼
lrj525 [专家分:260] 发布于 2007-05-23 00:55:00
<%
str="1,6,34,4,55,33,22,11,77,10"
dim Arrstr
Arrstr=split(Str,",")
for j=0 to ubound(Arrstr)
for i=0 to ubound(Arrstr)-1
if Cint(Arrstr(i+1))>Cint(Arrstr(i)) Then
temp=Arrstr(i)
Arrstr(i)=Arrstr(i+1)
Arrstr(i+1)=temp
End If
Next
Next
for i=0 to ubound(Arrstr)
if a="" Then
a=Arrstr(i)
else
a=a&","&Arrstr(i)
end if
next
response.write(a)
%>
第一次回你的贴子时一时粗心搞错了,现在补充完整。wangsdong朋友的算法也是对的,他的算法应该比我现在的算法执行步骤少。不过我感觉以自己理解的方式写东西比较好,不然搞上半天也搞不明白,就不太好了。
我来回复