发布新日志

  • VBS的快速排序

    2008-06-11 18:21:44

    下面是VBS的快速排序代码,适合数字和字符串数组:

    Public Function QSort(ByRef ReArr, ByVal head,ByVall tail)
    ReArr是待排序数组,head和tail是该数组的最小下标和最大下标
    Dim lef,rig
    Dim pivot

    If head<tail,Then
    lef=head
    rig=tail
    pivot=ReArr(lef)
    While (lef<>rig)

    While (lef<rig and ReArr(rig)>=pivot)
    rig=rig-1
    Wend
    If lef<rig Then
    ReArr(lef)=ReArr(rig)
    lef=lef+1
    End If


    While (lef<rig and ReArr(lef)<=pivot)
     lef=lef+1
    Wend

    If lef<rig Then
    ReArr(rig)=ReArr(lef)
     rig=rig-1
    End If
    Wend

    ReArr(lef)=pivot
    call QSort(ReArr,head,lef-1)
    call QSort(ReArr,lef+1,tail)

    End If
    End Function

Open Toolbar