如何修改正確的asp冒泡排序?很多朋友們都被這個問題困擾過吧,那么我們現在就去看看asp冒泡排序的正確修改方式,還不了解的朋友們一起參考參考吧。
網上搜到的代碼,千篇一律是這個
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()
以上就是asp冒泡排序的正確修改方式,但好笑的是,有些數組,用那個錯誤的sort函數是可以排正確的。
新聞熱點
疑難解答