ASP如何对输入的一串数字排序

aspnewuser 2004-10-07 05:34:40
比如这串数字是:8,3317,25,137,2,78,871,131,86
输出的结果要从小到大顺序,请问用ASP怎么写?
...全文
143 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
超级大笨狼 2004-12-25
  • 打赏
  • 举报
回复
来晚拉

sub sortA( Arr)
'堆排序,复杂度n*log(n)/log(2),如果8个数就是24次,如果用冒泡是8^2=64次
dim n,i,L,ir,rArr,j
n = ubound(Arr) '7,8个元素
L = int(n / 2)+1
ir = n
do
if L > 1 then
L = L - 1
rArr = Arr(L)
else
rArr = Arr(ir)
Arr(ir) = Arr(1)
ir = ir - 1
if ir = 1 then
Arr(1) = rArr
exit sub
end if
end if
i = L
j = 2 * L
while j <= ir
if j < ir then
if Arr(j) < Arr(j + 1) then j = j + 1
end if
if rArr < Arr(j) then
Arr(i) = Arr(j)
i = j
j = 2 * j
else
j = ir + 1
end if
wend
Arr(i) = rArr
loop
end sub
wzgme 2004-10-07
  • 打赏
  • 举报
回复
<%
''********数组排序
Dim MyArray
MyArray = Array(8,3317,25,137,2,78,871,131,86)
MyArray = Sortasc(MyArray) ''---调用升序
For I = 0 to Ubound(MyArray)
Response.Write MyArray(I) & "<br>" & vbCRLF
Next
Response.End


''------------降序
Function Sortdesc(ary)
KeepChecking = TRUE
Do Until KeepChecking = FALSE
KeepChecking = FALSE
For I = UBound(ary) to 0 step -1
If I = 0 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
Sortdesc = ary
End Function
''----------升序
Function Sortasc(ary)
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
Sortasc = ary
End Function
%>
guoweidong 2004-10-07
  • 打赏
  • 举报
回复
呵呵,我用的方法跟 net_lover(孟子E章)不一样,我写的是数据结构中的"冒泡"算法. net_lover(孟子E章)直接调用已有的函数.

http://community.csdn.net/Expert/topic/3431/3431181.xml?temp=.1467401
guoweidong 2004-10-07
  • 打赏
  • 举报
回复
<%
dim num
num=Array(8,3317,25,137,2,78,871,131,86)
for j=0 to ubound(num)
for i=0 to ubound(num)
dim temp
if num(j)<num(i) then
temp = num(j)
num(j)=num(i)
num(i)=temp
end if
next
next
for i=0 to ubound(num)
response.Write num(i)&","
next
%>

啊,我第一次写这东东,写慢啦.
孟子E章 2004-10-07
  • 打赏
  • 举报
回复
<%
ss= "8,3317,25,137,2,78,871,131,86"
Response.Write SortArray(ss)
%>
<script language="javascript" runat=server>
function SortArray(s)
{
a = s.split(",")
var b = new Array()
for(i=0;i<a.length;i++)
b[i]=parseFloat(a[i])
aa = b.sort(numberSort)
return aa.toString();
}
function numberSort(n1,n2) {
return n1-n2;
}
</script>
孟子E章 2004-10-07
  • 打赏
  • 举报
回复
<%
ss= "8,3317,25,137,2,78,871,131,86"
Response.Write SortArray(ss)
%>
<script language="javascript" runat=server>
function SortArray(s)
{
a = s.split(",")
var b = new Array()
for(i=0;i<a.length;i++)
b[i]=parseFloat(a[i])
aa = b.sort(numberSort)
return aa.toString();
}
function numberSort(n1,n2) {
if (n1<n2) retVal=-1;
else if (n1>n2) retVal=1;
else retVal=0;
return retVal;
}
</script>

28,391

社区成员

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

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