asp下几种常用排序算法

  <%

  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

  %>