ASP几种排序算法

by 清泉 23. 六月 2009 19:23

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

ASP技术资料

添加评论



(将显示你的Gravatar头像)  

biuquote
微笑得意调皮害羞酷大笑惊讶发呆喜欢可怜尴尬闭嘴噘嘴皱眉伤心抓狂呕吐坏笑漫骂发怒
Loading



Supidea.com 晨飞的梦 @ All Rights Reserved. Powered by BlogYi.NET ver:1.8.0.0. 苏ICP备09011404号

关于博主

kamau
抱着美好的理想背井离乡,这酸甜苦辣只能默默忍受。既然选择了路,就得风雨兼程……

Calendar

<<  九月 2010  >>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

在日历中查看文章

最近的评论

Comment RSS

声明

      本博所发一切破解相关附件只作学习研究交流之用,严禁用于商业用途,请在下载24小时内删除。
      本博所有网友评论不代表本博立场,版权归其作者所有。

© Copyright 2009