WEB开发网
开发学院WEB开发ASP 几种常用排序算法(asp) 阅读

几种常用排序算法(asp)

 2006-10-20 10:33:52 来源:WEB开发网   
核心提示:<%Dim aDataaData = Array(3,2,4,1,6,0)Call ResponseArray(aData, "原来顺序")Call ResponseArray(SelectSort(aData), "选择排序")Call ResponseArray(Qui

<%

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

%>

Tags:常用 排序 算法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接