asp下几种常用排序算法
2018-09-06 11:49
<%
Dim aData
aData = Array(3,2,4,1,6,0)
Call ResponseArray(aData, 原来顺序)
Call ResponseArray(SelectSort(aData), 选择排序)
Call ResponseArray(QuickSort(aData), 快速排序)
Call ResponseArray(InsertSort(aData), 插入排序)
Call ResponseArray(BubbleSort(aData), 冒泡排序)
选择排序
Function SelectSort(a_Data)
Dim i, j, k
Dim bound, t
bound = UBound(a_Data)
For i = 0 To bound-1
k = i
For j = i+1 To bound
If a_Data(k) > a_Data(j) Then
k = j
End If
Next
t = a_Data(i)
a_Data(i) = a_Data(k)
a_Data(k) = t
Next
SelectSort = a_Data
End Function
快速排序
Function QuickSort(a_Data)
Dim i, j
Dim bound, t
bound = UBound(a_Data)
For i = 0 To bound-1
For j = i+1 To bound
If a_Data(i) > a_Data(j) Then
t = a_Data(i)
a_Data(i) = a_Data(j)
a_Data(j) = t
End If
Next
Next
QuickSort = a_Data
End Function
冒泡排序
Function BubbleSort(a_Data)
Dim bound
bound = UBound(a_Data)
Dim bSorted, i, t
bSorted = False
Do While bound > 0 And bSorted = False
bSorted = True
For i = 0 To bound-1
If a_Data(i) > a_Data(i+1) Then
t = a_Data(i)
a_Data(i) = a_Data(i+1)
a_Data(i+1) = t
bSorted = False
End If
Next
bound = bound - 1
Loop
BubbleSort = a_Data
End Function
插入排序
Function InsertSort(a_Data)
Dim bound
bound = UBound(a_Data)
Dim i, j, t
For i = 1 To bound
t = a_Data(i)
j = i
Do While t<a_Data(j-1) And j>0
a_Data(j) = a_Data(j-1)
j = j - 1
Loop
a_Data(j) = t
Next
InsertSort = a_Data
End Function
输出数组
Sub ResponseArray(a_Data, str)
Dim s
s =
Response.Write <b> & str & :</b>
For i = 0 To UBound(a_Data)
s = s & a_Data(i) & ,
Next
s = Left(s, Len(s)-1)
Response.Write s
Response.Write <hr>
End Sub
%>
上一篇:如何限制同一用户名同时登陆