排序问题,请专家指导哈,不胜感激!

snow408 2019-05-11 06:09:39
asp 数字排序
a1=8
a2=8
a3=12
a4=25
a5=5
a6=9
a7=55
a8=60
a9=21
a10=22

根据后面的值的大小排序
输出最大的三个:
a8,a7,a4

只需要输出等号前面的
不需要输出等号后面的数字
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
snow408 2019-06-04
  • 打赏
  • 举报
回复
引用 1 楼 qq_63572063 的回复:
art = Array("a1=8","a2=8","a3=12","a4=25","a5=5","a6=9","a7=55","a8=60","a9=21","a10=22")
art = kSort(art)
For j = 0 To 2
Response.Write left(art(j),instr(art(j),"=")-1) & ","
Next

Public Function kSort(ary)
Dim KeepChecking,I,FirstValue,SecondValue
KeepChecking = TRUE
Do Until KeepChecking = FALSE
KeepChecking = FALSE
For I = 0 to UBound(ary)
If I = UBound(ary) Then Exit For
v1 = mid(art(i),instr(art(i),"=")+1)
v2 = mid(art(i+1),instr(art(i+1),"=")+1)
If Cint(v1) < Cint(v2) Then
FirstValue = ary(I)
SecondValue = ary(I+1)
ary(I) = SecondValue
ary(I+1) = FirstValue
KeepChecking = TRUE
End If
Next
Loop
kSort = ary
End Function


输出最大的三个数,怎么赋给某一个参数呢,请指导
  • 打赏
  • 举报
回复
art = Array("a1=8","a2=8","a3=12","a4=25","a5=5","a6=9","a7=55","a8=60","a9=21","a10=22")
art = kSort(art)
For j = 0 To 2
Response.Write left(art(j),instr(art(j),"=")-1) & ","
Next

Public Function kSort(ary)
Dim KeepChecking,I,FirstValue,SecondValue
KeepChecking = TRUE
Do Until KeepChecking = FALSE
KeepChecking = FALSE
For I = 0 to UBound(ary)
If I = UBound(ary) Then Exit For
v1 = mid(art(i),instr(art(i),"=")+1)
v2 = mid(art(i+1),instr(art(i+1),"=")+1)
If Cint(v1) < Cint(v2) Then
FirstValue = ary(I)
SecondValue = ary(I+1)
ary(I) = SecondValue
ary(I+1) = FirstValue
KeepChecking = TRUE
End If
Next
Loop
kSort = ary
End Function
snow408 2019-05-12
  • 打赏
  • 举报
回复
引用 1 楼 qq_63572063 的回复:
art = Array("a1=8","a2=8","a3=12","a4=25","a5=5","a6=9","a7=55","a8=60","a9=21","a10=22")
art = kSort(art)
For j = 0 To 2
Response.Write left(art(j),instr(art(j),"=")-1) & ","
Next

Public Function kSort(ary)
Dim KeepChecking,I,FirstValue,SecondValue
KeepChecking = TRUE
Do Until KeepChecking = FALSE
KeepChecking = FALSE
For I = 0 to UBound(ary)
If I = UBound(ary) Then Exit For
v1 = mid(art(i),instr(art(i),"=")+1)
v2 = mid(art(i+1),instr(art(i+1),"=")+1)
If Cint(v1) < Cint(v2) Then
FirstValue = ary(I)
SecondValue = ary(I+1)
ary(I) = SecondValue
ary(I+1) = FirstValue
KeepChecking = TRUE
End If
Next
Loop
kSort = ary
End Function


感谢专家
snow408 2019-05-12
  • 打赏
  • 举报
回复
引用 1 楼 qq_63572063 的回复:
art = Array("a1=8","a2=8","a3=12","a4=25","a5=5","a6=9","a7=55","a8=60","a9=21","a10=22")
art = kSort(art)
For j = 0 To 2
Response.Write left(art(j),instr(art(j),"=")-1) & ","
Next

Public Function kSort(ary)
Dim KeepChecking,I,FirstValue,SecondValue
KeepChecking = TRUE
Do Until KeepChecking = FALSE
KeepChecking = FALSE
For I = 0 to UBound(ary)
If I = UBound(ary) Then Exit For
v1 = mid(art(i),instr(art(i),"=")+1)
v2 = mid(art(i+1),instr(art(i+1),"=")+1)
If Cint(v1) < Cint(v2) Then
FirstValue = ary(I)
SecondValue = ary(I+1)
ary(I) = SecondValue
ary(I+1) = FirstValue
KeepChecking = TRUE
End If
Next
Loop
kSort = ary
End Function


牛!!!
太厉害了!!

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧