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
<%
''********数组排序
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
%>
<%
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
%>
<%
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>
<%
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>