设置首页  |   加入收藏  |  联系我们   
您的位置: 主页>程序设计>ASP>正文
更正确的asp冒泡排序
文章来源:  编辑:  发布时间:2007-11-27

网上搜到的代码,千篇一律是这个

Function Sort(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
   If ary(I) > ary(I+1) Then
    FirstValue = ary(I)
    SecondValue = ary(I+1)
    ary(I) = SecondValue
    ary(I+1) = FirstValue
    KeepChecking = TRUE
   End If
 Next
Loop
 Sort = ary
End Function

存在错误。。。。。。

测试一下就知道

s="11,3,1"
s=sort(split(s,","))
for i=0 to ubound(s)
response.write s(i) & "<br>"
next

打印结果是

1

11

 3

 

正确的function是:

function sort(ary)
ck=true
do Until ck = false
 ck=false
 For f = 0 to UBound(ary) -1
  if clng(ary(f))>clng(ary(f+1)) then
   v1=clng(ary(f))
   v2=clng(ary(f+1))
   ary(f)=v2
   ary(f+1)=v1
   
   ck=true
  end if
 next
loop
sort=ary
end function

就差在一个clng()

但好笑的是,有些数组,用那个错误的sort函数是可以排正确的。





 
Tags:排序 正确 ary KeepChecking clng sort ck For function
Google
 
上一篇: ASP如何跳出本次进入下一次循环   下一篇: 利用ASP代码实现对 IP 的访问限制
【返回顶部】 【打印】 【大】 【中】 【小】 【关闭】

 我来说两句
用户名: 新注册) 密码: 匿名评论 [论坛讨论]
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 相关文章
 热门文章

 
版权所有  2005-2006  Linux集中营  闽ICP备07500055号