<% 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 %>
|