如题!!

解决方案 »

  1.   

    可是现在没有书看,能告诉我吗数据结构我学的均是Pascal.
    再刷一次。
      

  2.   

    Dim i As Long
        Dim iArray() as long           '要排序的数组
        Dim ArraySize As Long          '数组大小
        Dim ExchangeIndex As Long      '进行两两比较时前一个元素的下标
        Dim Exchange As long
           
        '数组排序,(升序),冒泡排序法
        Redim iArray(10)               '数组大小由你的程序而定 
        ArraySize = UBound(iArray)
        For i = 1 To ArraySize
            For ExchangeIndex = 1 To ArraySize - i
                '如果前一个元素大于后一个元素,就要交换这两个相邻元素
                If iArray(ExchangeIndex) > iArray(ExchangeIndex + 1) Then
                    Exchange = iArray(ExchangeIndex)
                    iArray(ExchangeIndex) = iArray(ExchangeIndex + 1)
                    iArray(ExchangeIndex + 1) = Exchange
                End If
            Next
        Next
    临时做了一个,没有调试,你试一下吧,我这里只是提供了一个算法,至于数组赋值,使用静态数组还是动态数组你自己定吧。
      

  3.   

    Shell排序
    '-------------------------------------------------------------------------------
    'Shell——排序将输入的字符串排序后返回
    'strText--输入的字符串
    'strFind--分割标记
    '-------------------------------------------------------------------------------
    Public Function funShellSort(ByVal strText As String, ByVal strFind As String) As String
        Dim varTmp() As String
        Dim i As Long
        Dim logCount As Long
        Dim logIncrem As Long
        Dim j As Long
        Dim strTmp As String
        '保证最后一个字符是分隔符
        If Right(strText, 1) <> Trim(strFind) Then strText = strText & Trim(strFind)
        '将数组的0替换掉
        strText = "00" & strFind & strText
        '将字符添入数组
        varTmp = Split(strText, strFind, -1)
        logCount = UBound(varTmp)
        logIncrem = logCount \ 2
        Do Until logIncrem < 1
            For i = logIncrem To logCount - 1
                strTmp = varTmp(i)
                For j = i - logIncrem To 1 Step -logIncrem
                    If strTmp > varTmp(j) Then Exit For
                    varTmp(j + logIncrem) = varTmp(j)
                Next j
                varTmp(j + logIncrem) = strTmp
            Next i
            logIncrem = logIncrem \ 2
        Loop
        strTmp = ""
        For i = 1 To UBound(varTmp) - 1
            If i = UBound(varTmp) - 1 Then
                strTmp = strTmp & varTmp(i)
            Else
                strTmp = strTmp & varTmp(i) & strFind
            End If
        Next
        Erase varTmp
        funShellSort = strTmp
    End Function
      

  4.   

    强烈建议你看看C语言或者其他语言描述的数据结构;本问题属于算法,冒泡、选择、快速排序都可以; (看完后,对你的编程思路将有质的改变,OK)
      

  5.   

    最简单的方法,利用ListBox。List1.Sorted = True
    For i = 0 To Ubound(arr)
        List1.AddItem Cstr(arr(i))
    Next i
    For i = 0 To List1.ListCount - 1 '如果降序则For i = List1.ListCount-1 To 0 Step -1
        arr(i) = Val(List1.List(i))
    Next i