tempad
ReadyGo!技术成就梦想 >>ASP技巧 >> 几种常用排序算法(asp)

几种常用排序算法(asp)

ReadyGo!技术成就梦想 网络搜索 efish 2008-2-24 3:06:54

<%

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

%>

责任编辑: efish 参与评论 查找更多:
相关文章
用AspJpeg组件,按宽高比例,真正生成缩略图 用AspJpeg组件,按宽高比例,真正生成缩略图
asp连接数据库的方法(全) asp连接数据库的方法(全)
将内容自动添加到指定文本域的JS 将内容自动添加到指定文本域的JS
ASP二进制流方法隐藏图片文件真实地址 ASP二进制流方法隐藏图片文件真实地址
PRB:ASP 返回“Operation Must Use an Updateable … PRB:ASP 返回“Operation Must Use an Updateable Query”(操作必须使用可更新的查询)错误
对ASP动态包含文件方法的改进 对ASP动态包含文件方法的改进
整站二进制数据库文件还原 整站二进制数据库文件还原
实用的ASP连接数据库的函数 实用的ASP连接数据库的函数
ASP提高数据显示效率-缓存探幽 ASP提高数据显示效率-缓存探幽
ASP日期和时间函数示例 ASP日期和时间函数示例
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn

分类导航
ReadyGo!技术成就梦想